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);
}
public static File py(String name) {
return new File(py(), name);
}
public static File jar(String name) {
File file = new File(jar(), Util.md5(name).concat(".jar"));
file.setReadOnly();

@ -23,6 +23,6 @@ public class Loader {
public Spider spider(Context context, String api) {
if (app == null) init(context);
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.github.catvod.Proxy;
import com.github.catvod.utils.Path;
import com.github.catvod.utils.UriUtil;
import com.github.catvod.utils.Util;
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 obj;
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.app = app;
this.obj = obj;
this.api = api;
}
@Override
@ -31,6 +35,8 @@ public class Spider extends com.github.catvod.crawler.Spider {
@Override
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);
}
@ -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) {
return content.replace("http://127.0.0.1:UndCover/proxy", Proxy.getUrl(true));
}

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

Loading…
Cancel
Save