pull/605/head
jhengazuki 5 months ago
parent 0dcfe47c97
commit 2afd299281
  1. 5
      app/src/main/java/com/fongmi/android/tv/api/loader/JsLoader.java
  2. 13
      chaquo/src/main/AndroidManifest.xml
  3. 6
      chaquo/src/main/java/com/fongmi/chaquo/Loader.java
  4. 28
      chaquo/src/main/java/com/fongmi/chaquo/Startup.java
  5. 13
      quickjs/src/main/AndroidManifest.xml
  6. 27
      quickjs/src/main/java/com/fongmi/quickjs/Startup.java
  7. 16
      quickjs/src/main/java/com/fongmi/quickjs/crawler/Loader.java
  8. 4
      quickjs/src/main/java/com/fongmi/quickjs/crawler/Spider.java

@ -1,6 +1,7 @@
package com.fongmi.android.tv.api.loader;
import com.fongmi.android.tv.App;
import com.fongmi.quickjs.crawler.Loader;
import com.github.catvod.crawler.Spider;
import com.github.catvod.crawler.SpiderNull;
@ -11,9 +12,11 @@ public class JsLoader {
private final ConcurrentHashMap<String, Spider> spiders;
private String recent;
private Loader loader;
public JsLoader() {
spiders = new ConcurrentHashMap<>();
loader = new Loader();
}
public void clear() {
@ -28,7 +31,7 @@ public class JsLoader {
public Spider getSpider(String key, String api, String ext, String jar) {
try {
if (spiders.containsKey(key)) return spiders.get(key);
Spider spider = new com.fongmi.quickjs.crawler.Spider(key, api, BaseLoader.get().dex(jar));
Spider spider = loader.spider(key, api, BaseLoader.get().dex(jar));
spider.init(App.get(), ext);
spiders.put(key, spider);
return spider;

@ -1,13 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application>
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="${applicationId}.androidx-startup"
android:exported="false">
<meta-data
android:name="com.fongmi.chaquo.Startup"
android:value="androidx.startup" />
</provider>
</application>
</manifest>
<manifest />

@ -1,9 +1,9 @@
package com.fongmi.chaquo;
import androidx.annotation.Keep;
import com.chaquo.python.PyObject;
import com.chaquo.python.Python;
import com.chaquo.python.android.AndroidPlatform;
import com.github.catvod.Init;
import com.github.catvod.utils.Path;
public class Loader {
@ -11,10 +11,10 @@ public class Loader {
private final PyObject app;
public Loader() {
if (!Python.isStarted()) Python.start(new AndroidPlatform(Init.context()));
app = Python.getInstance().getModule("app");
}
@Keep
public Spider spider(String api) {
PyObject obj = app.callAttr("spider", Path.py().getAbsolutePath(), api);
return new Spider(app, obj, api);

@ -1,28 +0,0 @@
package com.fongmi.chaquo;
import android.content.Context;
import androidx.annotation.NonNull;
import androidx.startup.Initializer;
import com.chaquo.python.Python;
import com.chaquo.python.android.AndroidPlatform;
import java.util.Collections;
import java.util.List;
public class Startup implements Initializer<Void> {
@NonNull
@Override
public Void create(@NonNull Context context) {
Python.start(new AndroidPlatform(context));
return null;
}
@NonNull
@Override
public List<Class<? extends Initializer<?>>> dependencies() {
return Collections.emptyList();
}
}

@ -1,13 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application>
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="${applicationId}.androidx-startup"
android:exported="false">
<meta-data
android:name="com.fongmi.quickjs.Startup"
android:value="androidx.startup" />
</provider>
</application>
</manifest>
<manifest />

@ -1,27 +0,0 @@
package com.fongmi.quickjs;
import android.content.Context;
import androidx.annotation.NonNull;
import androidx.startup.Initializer;
import com.whl.quickjs.android.QuickJSLoader;
import java.util.Collections;
import java.util.List;
public class Startup implements Initializer<Void> {
@NonNull
@Override
public Void create(@NonNull Context context) {
QuickJSLoader.init();
return null;
}
@NonNull
@Override
public List<Class<? extends Initializer<?>>> dependencies() {
return Collections.emptyList();
}
}

@ -0,0 +1,16 @@
package com.fongmi.quickjs.crawler;
import com.whl.quickjs.android.QuickJSLoader;
import dalvik.system.DexClassLoader;
public class Loader {
public Loader() {
QuickJSLoader.init();
}
public Spider spider(String key, String api, DexClassLoader dex) {
return new Spider(key, api, dex);
}
}

@ -42,12 +42,11 @@ public class Spider extends com.github.catvod.crawler.Spider {
private final String api;
private boolean cat;
public Spider(String key, String api, DexClassLoader dex) throws Exception {
public Spider(String key, String api, DexClassLoader dex) {
this.executor = Executors.newSingleThreadExecutor();
this.key = key;
this.api = api;
this.dex = dex;
initializeJS();
}
private <T> Future<T> submit(Callable<T> callable) {
@ -60,6 +59,7 @@ public class Spider extends com.github.catvod.crawler.Spider {
@Override
public void init(Context context, String extend) throws Exception {
initializeJS();
if (cat) call("init", submit(() -> cfg(extend)).get());
else call("init", Json.isObj(extend) ? ctx.parse(extend) : extend);
}

Loading…
Cancel
Save