py add download dependence

pull/586/head
FongMi 2 years ago
parent 8406a7c465
commit 6f594bfd4f
  1. 4
      catvod/src/main/java/com/github/catvod/utils/Path.java
  2. 2
      chaquo/src/main/java/com/fongmi/chaquo/Loader.java
  3. 14
      chaquo/src/main/java/com/fongmi/chaquo/Spider.java
  4. 4
      chaquo/src/main/python/app.py

@ -108,6 +108,10 @@ public class Path {
return new File(js(), name); return new File(js(), name);
} }
public static File py(String name) {
return new File(py(), name);
}
public static File jar(String name) { public static File jar(String name) {
File file = new File(jar(), Util.md5(name).concat(".jar")); File file = new File(jar(), Util.md5(name).concat(".jar"));
file.setReadOnly(); file.setReadOnly();

@ -23,6 +23,6 @@ public class Loader {
public Spider spider(Context context, String api) { public Spider spider(Context context, String api) {
if (app == null) init(context); if (app == null) init(context);
PyObject obj = app.callAttr("spider", Path.py().getAbsolutePath(), api); PyObject obj = app.callAttr("spider", Path.py().getAbsolutePath(), api);
return new Spider(app, obj); return new Spider(app, obj, api);
} }
} }

@ -4,6 +4,8 @@ import android.content.Context;
import com.chaquo.python.PyObject; import com.chaquo.python.PyObject;
import com.github.catvod.Proxy; import com.github.catvod.Proxy;
import com.github.catvod.utils.Path;
import com.github.catvod.utils.UriUtil;
import com.github.catvod.utils.Util; import com.github.catvod.utils.Util;
import com.google.gson.Gson; import com.google.gson.Gson;
@ -17,11 +19,13 @@ public class Spider extends com.github.catvod.crawler.Spider {
private final PyObject app; private final PyObject app;
private final PyObject obj; private final PyObject obj;
private final Gson gson; private final Gson gson;
private final String api;
public Spider(PyObject app, PyObject obj) { public Spider(PyObject app, PyObject obj, String api) {
this.gson = new Gson(); this.gson = new Gson();
this.app = app; this.app = app;
this.obj = obj; this.obj = obj;
this.api = api;
} }
@Override @Override
@ -31,6 +35,8 @@ public class Spider extends com.github.catvod.crawler.Spider {
@Override @Override
public void init(Context context, String extend) { public void init(Context context, String extend) {
List<PyObject> items = app.callAttr("getDependence", obj).asList();
for (PyObject item : items) download(item + ".py");
app.callAttr("init", obj, extend); app.callAttr("init", obj, extend);
} }
@ -108,6 +114,12 @@ public class Spider extends com.github.catvod.crawler.Spider {
} }
} }
private void download(String name) {
String path = Path.py(name).getAbsolutePath();
String url = UriUtil.resolve(api, name);
app.callAttr("download", path, url);
}
private String replaceProxy(String content) { private String replaceProxy(String content) {
return content.replace("http://127.0.0.1:UndCover/proxy", Proxy.getUrl(true)); return content.replace("http://127.0.0.1:UndCover/proxy", Proxy.getUrl(true));
} }

@ -7,12 +7,12 @@ import json
def spider(cache, api): def spider(cache, api):
name = os.path.basename(api) name = os.path.basename(api)
path = cache + '/' + name path = cache + '/' + name
downloadFile(path, api) download(path, api)
name = name.split('.')[0] name = name.split('.')[0]
return SourceFileLoader(name, path).load_module().Spider() return SourceFileLoader(name, path).load_module().Spider()
def downloadFile(path, api): def download(path, api):
if api.startswith('http'): if api.startswith('http'):
writeFile(path, redirect(api).content) writeFile(path, redirect(api).content)
else: else:

Loading…
Cancel
Save