diff --git a/app/src/python/java/com/github/catvod/crawler/pyLoader.java b/app/src/python/java/com/github/catvod/crawler/pyLoader.java index ba3acd4d..cf3fa62f 100644 --- a/app/src/python/java/com/github/catvod/crawler/pyLoader.java +++ b/app/src/python/java/com/github/catvod/crawler/pyLoader.java @@ -1,20 +1,19 @@ // 文件: app/src/python/java/com/github/catvod/crawler/python/PyLoader.java package com.github.catvod.crawler; +import android.Manifest; +import android.content.pm.PackageManager; import android.util.Log; -import com.chaquo.python.PyObject; + +import androidx.core.content.ContextCompat; + import com.github.catvod.crawler.python.IPyLoader; import com.github.tvbox.osc.base.App; import com.github.tvbox.osc.util.LOG; import com.github.tvbox.osc.util.MD5; import com.undcover.freedom.pyramid.PythonLoader; import com.undcover.freedom.pyramid.PythonSpider; -import java.io.ByteArrayInputStream; -import java.io.InputStream; import java.io.UnsupportedEncodingException; -import java.lang.reflect.Field; -import java.net.URLEncoder; -import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -50,12 +49,16 @@ public class pyLoader implements IPyLoader { return spiders.get(key); } try { + if (ContextCompat.checkSelfPermission(App.getInstance(), Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + Log.i("PyLoader", "无存储权限,终止执行"); + return new SpiderNull(); + } Log.i("PyLoader", "echo-getSpider url: " + getPyUrl(cls, ext)); Spider sp = pythonLoader.getSpider(key, getPyUrl(cls, ext)); // Log.i("PyLoader", "echo-getSpider homeContent: " + sp.homeContent(true)); spiders.put(key, sp); Log.i("PyLoader", "echo-getSpider 加载spider: " + key); - return (Spider)sp; + return sp; } catch (Throwable th) { th.printStackTrace(); } diff --git a/app/src/python/java/com/undcover/freedom/pyramid/PythonLoader.java b/app/src/python/java/com/undcover/freedom/pyramid/PythonLoader.java index 0f65035b..87e017b1 100644 --- a/app/src/python/java/com/undcover/freedom/pyramid/PythonLoader.java +++ b/app/src/python/java/com/undcover/freedom/pyramid/PythonLoader.java @@ -122,7 +122,6 @@ public class PythonLoader { } try { PythonSpider sp = new PythonSpider(key, cache); - Thread initThread = new Thread(() -> { try { sp.init(app, url); @@ -132,13 +131,11 @@ public class PythonLoader { }); initThread.start(); initThread.join(12_000); - if (initThread.isAlive()) { PyLog.e("echo-init方法执行超时超时"); initThread.interrupt(); - throw new Exception("echo-init方法执行超时"); + return new SpiderNull(); } - spiders.put(key, sp); return sp; } catch (Throwable th) { diff --git a/app/src/python/java/com/undcover/freedom/pyramid/PythonSpider.java b/app/src/python/java/com/undcover/freedom/pyramid/PythonSpider.java index bd442fb6..96e2469e 100644 --- a/app/src/python/java/com/undcover/freedom/pyramid/PythonSpider.java +++ b/app/src/python/java/com/undcover/freedom/pyramid/PythonSpider.java @@ -130,28 +130,6 @@ public class PythonSpider extends Spider { return sb.toString(); } -// public Object[] proxyLocal(Map param) { -// PyLog.nw("localProxy", map2json(param).toString()); -// List poList = app.callAttr("localProxy", pySpider, map2json(param).toString()).asList(); -// PyLog.nw("localProxy" + "-" + name, poList.toString()); -// int code = poList.get(0).toInt(); -// String type = poList.get(1).toString(); -// String Content = poList.get(2).toString(); -// InputStream stream = new ByteArrayInputStream("".getBytes()); -// Object extra = null; -// try { -// if (!Content.isEmpty()) { -// stream = new ByteArrayInputStream(Content.getBytes("utf8")); -// } -// if (poList.size() > 3) { -// extra = poList.get(3).toJava(Map.class); -// } -// } catch (UnsupportedEncodingException e) { -// throw new RuntimeException(e); -// } -// return new Object[]{code, type, stream, extra}; -// } - public Object[] proxyLocal(Map params) { Log.i("PyLoader","echo-proxyLocal:param"+params.toString()); List list = app.callAttr("localProxy", pySpider, map2json(params).toString()).asList(); diff --git a/gradle.properties b/gradle.properties index e86424f0..8b1a2183 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,4 +17,4 @@ android.useAndroidX=true # Automatically convert third-party libraries to use AndroidX android.enableJetifier=true IsDebug=true -org.gradle.jvmargs=-Xmx2048m --add-opens java.base/java.io=ALL-UNNAMED +#org.gradle.jvmargs=-Xmx2048m --add-opens java.base/java.io=ALL-UNNAMED diff --git a/pyramid/build.gradle b/pyramid/build.gradle index dccc92f7..43f67246 100644 --- a/pyramid/build.gradle +++ b/pyramid/build.gradle @@ -11,6 +11,7 @@ android { targetSdkVersion 28 ndk { //abiFilters 'arm64-v8a' + //noinspection ChromeOsAbiSupport abiFilters "armeabi-v7a" } python { @@ -31,6 +32,7 @@ android { buildTypes { all { ndk { + //noinspection ChromeOsAbiSupport abiFilters 'armeabi-v7a' } } @@ -52,7 +54,7 @@ android { python.srcDirs = ["src/python"] } } -// buildToolsVersion '30.0.2' + buildToolsVersion '30.0.2' } dependencies { diff --git a/settings.gradle b/settings.gradle index b5e6fd65..63bed6c5 100644 --- a/settings.gradle +++ b/settings.gradle @@ -2,5 +2,4 @@ rootProject.name = "TVBox" include ':app' include ':player' include ':quickjs' -include ':clinglibrary' include ':pyramid' \ No newline at end of file