山海小管家.apk(点击下载) / AssetAndUrlModuleSourceProvider.java


package com.stardust.autojs.engine.module;

import a.g.b.f.a;
import android.content.Context;
import android.content.res.AssetManager;
import com.stardust.autojs.engine.encryption.ScriptEncryption;
import java.io.ByteArrayInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URI;
import java.net.URLConnection;
import java.util.List;
import org.mozilla.javascript.commonjs.module.provider.ModuleSource;

public class AssetAndUrlModuleSourceProvider extends UrlModuleSourceProvider {
    public final String mAssetDirPath;
    public final AssetManager mAssetManager = this.mContext.getAssets();
    public final URI mBaseURI;
    public Context mContext;

    public AssetAndUrlModuleSourceProvider(Context context, String str, List<URI> list) {
        super(list, null);
        this.mContext = context;
        this.mAssetDirPath = str;
        this.mBaseURI = URI.create("file:///android_asset/" + str);
    }

    @Override // com.stardust.autojs.engine.module.UrlModuleSourceProvider
    public Reader getReader(URLConnection uRLConnection) {
        InputStream inputStream = uRLConnection.getInputStream();
        byte[] bArr = new byte[inputStream.available()];
        inputStream.read(bArr);
        inputStream.close();
        a aVar = a.f2538b;
        return a.a(bArr) ? new InputStreamReader(new ByteArrayInputStream(ScriptEncryption.Companion.decrypt(bArr, 8, bArr.length))) : new InputStreamReader(new ByteArrayInputStream(bArr));
    }

    @Override // org.mozilla.javascript.commonjs.module.provider.ModuleSourceProviderBase, com.stardust.autojs.engine.module.UrlModuleSourceProvider
    public ModuleSource loadFromPrivilegedLocations(String str, Object obj) {
        String b2 = !str.endsWith(".js") ? a.b.c.a.a.b(str, ".js") : str;
        try {
            AssetManager assetManager = this.mAssetManager;
            InputStreamReader inputStreamReader = new InputStreamReader(assetManager.open(this.mAssetDirPath + "/" + b2));
            return new ModuleSource(inputStreamReader, null, new URI(this.mBaseURI.toString() + "/" + b2), this.mBaseURI, obj);
        } catch (FileNotFoundException unused) {
            return super.loadFromPrivilegedLocations(str, obj);
        }
    }
}