diff --git a/app/src/main/java/com/fongmi/android/tv/api/loader/JarLoader.java b/app/src/main/java/com/fongmi/android/tv/api/loader/JarLoader.java index 6bc4b2b92..fd5b35c80 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/loader/JarLoader.java +++ b/app/src/main/java/com/fongmi/android/tv/api/loader/JarLoader.java @@ -36,7 +36,7 @@ public class JarLoader { } public void clear() { - for (Spider spider : spiders.values()) spider.destroy(); + for (Spider spider : spiders.values()) App.execute(spider::destroy); loaders.clear(); methods.clear(); spiders.clear(); diff --git a/app/src/main/java/com/fongmi/android/tv/api/loader/JsLoader.java b/app/src/main/java/com/fongmi/android/tv/api/loader/JsLoader.java index 560a58aaf..dc4235c4a 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/loader/JsLoader.java +++ b/app/src/main/java/com/fongmi/android/tv/api/loader/JsLoader.java @@ -23,7 +23,7 @@ public class JsLoader { } public void clear() { - for (Spider spider : spiders.values()) spider.destroy(); + for (Spider spider : spiders.values()) App.execute(spider::destroy); jarLoader.clear(); spiders.clear(); } diff --git a/app/src/main/java/com/fongmi/android/tv/api/loader/PyLoader.java b/app/src/main/java/com/fongmi/android/tv/api/loader/PyLoader.java index 472a1e205..08626af60 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/loader/PyLoader.java +++ b/app/src/main/java/com/fongmi/android/tv/api/loader/PyLoader.java @@ -24,7 +24,7 @@ public class PyLoader { } public void clear() { - for (Spider spider : spiders.values()) spider.destroy(); + for (Spider spider : spiders.values()) App.execute(spider::destroy); spiders.clear(); } diff --git a/pyramid/src/main/java/com/undcover/freedom/pyramid/Spider.java b/pyramid/src/main/java/com/undcover/freedom/pyramid/Spider.java index 4f305aaf4..b0cca3d99 100644 --- a/pyramid/src/main/java/com/undcover/freedom/pyramid/Spider.java +++ b/pyramid/src/main/java/com/undcover/freedom/pyramid/Spider.java @@ -93,6 +93,11 @@ public class Spider extends com.github.catvod.crawler.Spider { return result; } + @Override + public void destroy() { + app.callAttr("destroy", obj); + } + private ByteArrayInputStream getStream(PyObject o, boolean base64) { if (o.type().toString().contains("bytes")) { return new ByteArrayInputStream(o.toJava(byte[].class)); diff --git a/quickjs/src/main/java/com/fongmi/quickjs/crawler/Spider.java b/quickjs/src/main/java/com/fongmi/quickjs/crawler/Spider.java index 6002b758e..f6717a703 100644 --- a/quickjs/src/main/java/com/fongmi/quickjs/crawler/Spider.java +++ b/quickjs/src/main/java/com/fongmi/quickjs/crawler/Spider.java @@ -126,6 +126,11 @@ public class Spider extends com.github.catvod.crawler.Spider { @Override public void destroy() { + try { + call("destroy"); + } catch (Throwable e) { + e.printStackTrace(); + } submit(() -> { executor.shutdownNow(); ctx.destroy();