Add siteKey for spider

pull/605/head
jhengazuji 4 months ago
parent e6b8139e16
commit 0c8e12f5ae
  1. 14
      app/src/main/java/com/fongmi/android/tv/api/loader/BaseLoader.java
  2. 1
      app/src/main/java/com/fongmi/android/tv/api/loader/JarLoader.java
  3. 13
      app/src/main/java/com/fongmi/android/tv/api/loader/JsLoader.java
  4. 11
      app/src/main/java/com/fongmi/android/tv/api/loader/PyLoader.java
  5. 2
      catvod/src/main/java/com/github/catvod/crawler/Spider.java
  6. 4
      quickjs/src/main/java/com/fongmi/quickjs/crawler/Loader.java
  7. 6
      quickjs/src/main/java/com/fongmi/quickjs/crawler/Spider.java

@ -58,7 +58,6 @@ public class BaseLoader {
}
public Spider getSpider(Map<String, String> params) {
if (!params.containsKey("siteKey")) return new SpiderNull();
Live live = LiveConfig.get().getLive(params.get("siteKey"));
Site site = VodConfig.get().getSite(params.get("siteKey"));
if (!site.isEmpty()) return site.spider();
@ -75,14 +74,11 @@ public class BaseLoader {
else if (csp) jarLoader.setRecent(Util.md5(jar));
}
public Object[] proxyLocal(Map<String, String> params) {
if ("js".equals(params.get("do"))) {
return jsLoader.proxyInvoke(params);
} else if ("py".equals(params.get("do"))) {
return pyLoader.proxyInvoke(params);
} else {
return jarLoader.proxyInvoke(params);
}
public Object[] proxyLocal(Map<String, String> params) throws Exception {
if (params.containsKey("siteKey")) return BaseLoader.get().getSpider(params).proxyLocal(params);
if ("js".equals(params.get("do"))) return jsLoader.proxyInvoke(params);
if ("py".equals(params.get("do"))) return pyLoader.proxyInvoke(params);
return jarLoader.proxyInvoke(params);
}
public void parseJar(String jar, boolean recent) {

@ -114,6 +114,7 @@ public class JarLoader {
if (spiders.containsKey(spKey)) return spiders.get(spKey);
if (!loaders.containsKey(jaKey)) parseJar(jaKey, jar);
Spider spider = (Spider) loaders.get(jaKey).loadClass("com.github.catvod.spider." + api.split("csp_")[1]).newInstance();
spider.siteKey = key;
spider.init(App.get(), ext);
spiders.put(spKey, spider);
return spider;

@ -31,7 +31,8 @@ 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 = loader.spider(key, api, BaseLoader.get().dex(jar));
Spider spider = loader.spider(api, BaseLoader.get().dex(jar));
spider.siteKey = key;
spider.init(App.get(), ext);
spiders.put(key, spider);
return spider;
@ -41,13 +42,7 @@ public class JsLoader {
}
}
public Object[] proxyInvoke(Map<String, String> params) {
try {
if (!params.containsKey("siteKey")) return spiders.get(recent).proxyLocal(params);
return BaseLoader.get().getSpider(params).proxyLocal(params);
} catch (Throwable e) {
e.printStackTrace();
return null;
}
public Object[] proxyInvoke(Map<String, String> params) throws Exception {
return spiders.get(recent).proxyLocal(params);
}
}

@ -32,6 +32,7 @@ public class PyLoader {
try {
if (spiders.containsKey(key)) return spiders.get(key);
Spider spider = loader.spider(api);
spider.siteKey = key;
spider.init(App.get(), ext);
spiders.put(key, spider);
return spider;
@ -41,13 +42,7 @@ public class PyLoader {
}
}
public Object[] proxyInvoke(Map<String, String> params) {
try {
if (!params.containsKey("siteKey")) return spiders.get(recent).proxyLocal(params);
return BaseLoader.get().getSpider(params).proxyLocal(params);
} catch (Throwable e) {
e.printStackTrace();
return null;
}
public Object[] proxyInvoke(Map<String, String> params) throws Exception {
return spiders.get(recent).proxyLocal(params);
}
}

@ -13,6 +13,8 @@ import okhttp3.OkHttpClient;
public abstract class Spider {
public String siteKey;
public void init(Context context) throws Exception {
}

@ -10,7 +10,7 @@ public class Loader {
QuickJSLoader.init();
}
public Spider spider(String key, String api, DexClassLoader dex) {
return new Spider(key, api, dex);
public Spider spider(String api, DexClassLoader dex) {
return new Spider(api, dex);
}
}

@ -38,13 +38,11 @@ public class Spider extends com.github.catvod.crawler.Spider {
private final DexClassLoader dex;
private QuickJSContext ctx;
private JSObject jsObject;
private final String key;
private final String api;
private boolean cat;
public Spider(String key, String api, DexClassLoader dex) {
public Spider(String api, DexClassLoader dex) {
this.executor = Executors.newSingleThreadExecutor();
this.key = key;
this.api = api;
this.dex = dex;
}
@ -201,7 +199,7 @@ public class Spider extends com.github.catvod.crawler.Spider {
private JSObject cfg(String ext) {
JSObject cfg = ctx.createNewJSObject();
cfg.setProperty("stype", 3);
cfg.setProperty("skey", key);
cfg.setProperty("skey", siteKey);
if (!Json.isObj(ext)) cfg.setProperty("ext", ext);
else cfg.setProperty("ext", (JSObject) ctx.parse(ext));
return cfg;

Loading…
Cancel
Save