From 8374849ec44a0230058156b616c93695a716cf11 Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 16 Jul 2024 00:51:23 +0800 Subject: [PATCH] Support js py destory --- .../java/com/fongmi/android/tv/api/loader/JarLoader.java | 2 +- .../main/java/com/fongmi/android/tv/api/loader/JsLoader.java | 2 +- .../main/java/com/fongmi/android/tv/api/loader/PyLoader.java | 2 +- chaquo/src/main/java/com/fongmi/chaquo/Spider.java | 5 +++++ quickjs/src/main/java/com/fongmi/quickjs/crawler/Spider.java | 5 +++++ 5 files changed, 13 insertions(+), 3 deletions(-) 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 e1e8e3a93..31353e83b 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 6f6f06e00..4979f1eb8 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/chaquo/src/main/java/com/fongmi/chaquo/Spider.java b/chaquo/src/main/java/com/fongmi/chaquo/Spider.java index bfb2e3a7b..951e57e4d 100644 --- a/chaquo/src/main/java/com/fongmi/chaquo/Spider.java +++ b/chaquo/src/main/java/com/fongmi/chaquo/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();