pull/178/head
FongMi 2 years ago
parent a1ba3c03e8
commit cf054eddce
  1. 2
      app/src/main/java/com/fongmi/android/tv/api/JsLoader.java
  2. 11
      app/src/main/java/com/fongmi/android/tv/api/PyLoader.java
  3. 2
      pyramid/src/main/java/com/undcover/freedom/pyramid/Loader.java
  4. 31
      pyramid/src/main/python/app.py

@ -55,7 +55,7 @@ public class JsLoader {
private Spider find(Map<String, String> params) {
if (!params.containsKey("siteKey")) return spiders.get(recent);
Site site = ApiConfig.get().getSite(params.get("siteKey"));
return site.isEmpty() ? null : ApiConfig.get().getSpider(site);
return site.isEmpty() ? new SpiderNull() : ApiConfig.get().getSpider(site);
}
public Object[] proxyInvoke(Map<String, String> params) {

@ -3,6 +3,7 @@ package com.fongmi.android.tv.api;
import android.content.Context;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.bean.Site;
import com.github.catvod.crawler.Spider;
import com.github.catvod.crawler.SpiderNull;
@ -51,11 +52,15 @@ public class PyLoader {
}
}
private Spider find(Map<String, String> params) {
if (!params.containsKey("siteKey")) return spiders.get(recent);
Site site = ApiConfig.get().getSite(params.get("siteKey"));
return site.isEmpty() ? new SpiderNull() : ApiConfig.get().getSpider(site);
}
public Object[] proxyInvoke(Map<String, String> params) {
try {
Spider spider = spiders.get(recent);
if (spider == null) return null;
return spider.proxyLocal(params);
return find(params).proxyLocal(params);
} catch (Throwable e) {
e.printStackTrace();
return null;

@ -24,7 +24,7 @@ public class Loader {
@Keep
public Spider spider(Context context, String key, String api) {
if (app == null) init(context);
PyObject obj = app.callAttr("init_py", cache, key, api);
PyObject obj = app.callAttr("spider", cache, key, api);
return new Spider(app, obj);
}
}

@ -4,12 +4,21 @@ from importlib.machinery import SourceFileLoader
import json
def create_file(file_path):
if os.path.exists(file_path) is False:
os.makedirs(file_path)
def spider(cache, key, api):
name = os.path.basename(api)
path = cache + '/' + name
downloadFile(path, api)
return SourceFileLoader(name, path).load_module().Spider()
def downloadFile(name, api):
if api.startswith('http'):
writeFile(name, redirect(api).content)
else:
writeFile(name, str.encode(api))
def write_file(name, content):
def writeFile(name, content):
with open(name, 'wb') as f:
f.write(content)
@ -22,20 +31,6 @@ def redirect(url):
return rsp
def download_file(name, api):
if api.startswith('http'):
write_file(name, redirect(api).content)
else:
write_file(name, str.encode(api))
def init_py(cache, key, api):
name = os.path.basename(api)
path = cache + '/' + name
download_file(path, api)
return SourceFileLoader(name, path).load_module().Spider()
def str2json(content):
return json.loads(content)

Loading…
Cancel
Save