diff --git a/app/src/main/java/com/fongmi/android/tv/api/JsLoader.java b/app/src/main/java/com/fongmi/android/tv/api/JsLoader.java index f590b327c..e716c2a6d 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/JsLoader.java +++ b/app/src/main/java/com/fongmi/android/tv/api/JsLoader.java @@ -31,7 +31,7 @@ public class JsLoader { public Spider getSpider(String key, String api, String ext) { try { if (spiders.containsKey(key)) return spiders.get(key); - Spider spider = new Spider(api, ext); + Spider spider = new Spider(api); spider.init(App.get(), ext); spiders.put(key, spider); return spider; diff --git a/drpy/build.gradle b/drpy/build.gradle index b8d4da6ed..6f8449194 100644 --- a/drpy/build.gradle +++ b/drpy/build.gradle @@ -17,5 +17,5 @@ dependencies { implementation 'com.google.code.gson:gson:2.10' implementation 'com.squareup.okhttp3:okhttp:5.0.0-alpha.10' implementation 'org.jsoup:jsoup:1.15.3' - implementation 'wang.harlon.quickjs:wrapper-android:0.11.0' + implementation 'wang.harlon.quickjs:wrapper-android:0.12.0' } \ No newline at end of file diff --git a/drpy/src/main/java/com/hiker/drpy/Spider.java b/drpy/src/main/java/com/hiker/drpy/Spider.java index 8dd21dc4f..05f9be827 100644 --- a/drpy/src/main/java/com/hiker/drpy/Spider.java +++ b/drpy/src/main/java/com/hiker/drpy/Spider.java @@ -2,9 +2,9 @@ package com.hiker.drpy; import android.content.Context; -import com.hiker.drpy.method.Console; import com.hiker.drpy.method.Global; import com.hiker.drpy.method.Local; +import com.whl.quickjs.android.QuickJSLoader; import com.whl.quickjs.wrapper.JSArray; import com.whl.quickjs.wrapper.JSObject; import com.whl.quickjs.wrapper.QuickJSContext; @@ -22,15 +22,13 @@ public class Spider extends com.github.catvod.crawler.Spider { private final ExecutorService executor; private final String key; - private final String ext; private final String api; private QuickJSContext ctx; private JSObject jsObject; - public Spider(String api, String ext) { + public Spider(String api) { this.executor = Executors.newSingleThreadExecutor(); this.key = "__" + UUID.randomUUID().toString().replace("-", "") + "__"; - this.ext = ext; this.api = api; } @@ -49,7 +47,7 @@ public class Spider extends com.github.catvod.crawler.Spider { @Override public void init(Context context, String extend) throws Exception { super.init(context, extend); - submit(() -> createJS(context)); + submit(() -> initJS(context, extend)); } @Override @@ -85,21 +83,24 @@ public class Spider extends com.github.catvod.crawler.Spider { } public void destroy() { - submit(() -> ctx.destroy()); + submit(() -> { + QuickJSContext.destroy(ctx); + QuickJSContext.destroyRuntime(ctx); + }); } - private void createJS(Context context) { - if (jsObject == null) setProperty(); + private void initJS(Context context, String extend) { + if (ctx == null) createCtx(); ctx.evaluateModule(getContent(context), api); jsObject = (JSObject) ctx.getProperty(ctx.getGlobalObject(), key); - jsObject.getJSFunction("init").call(ext); + jsObject.getJSFunction("init").call(extend); } - private void setProperty() { + private void createCtx() { ctx = QuickJSContext.create(); - ctx.getGlobalObject().setProperty("console", Console.class); - ctx.getGlobalObject().setProperty("local", Local.class); Global.create(ctx).setProperty(); + QuickJSLoader.initConsoleLog(ctx); + ctx.getGlobalObject().setProperty("local", Local.class); } private String getContent(Context context) { diff --git a/drpy/src/main/java/com/hiker/drpy/method/Console.java b/drpy/src/main/java/com/hiker/drpy/method/Console.java deleted file mode 100644 index 3fea185b6..000000000 --- a/drpy/src/main/java/com/hiker/drpy/method/Console.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.hiker.drpy.method; - -import android.util.Log; - -import androidx.annotation.Keep; - -import com.whl.quickjs.wrapper.JSMethod; - -public class Console { - - private final String TAG = Console.class.getSimpleName(); - - @Keep - @JSMethod - public void log(Object msg) { - Log.d(TAG, String.valueOf(msg)); - } -}