From 6ad8726f6caa199e7d97fba0b60c467e9e9ccafb Mon Sep 17 00:00:00 2001 From: FongMi Date: Wed, 18 Oct 2023 09:21:46 +0800 Subject: [PATCH] Clean code --- quickjs/src/main/assets/js/lib/spider.js | 10 ++++++++++ .../main/java/com/fongmi/quickjs/crawler/Spider.java | 8 +++----- 2 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 quickjs/src/main/assets/js/lib/spider.js diff --git a/quickjs/src/main/assets/js/lib/spider.js b/quickjs/src/main/assets/js/lib/spider.js new file mode 100644 index 000000000..baaef84ed --- /dev/null +++ b/quickjs/src/main/assets/js/lib/spider.js @@ -0,0 +1,10 @@ +import * as spider from '%s' + +if (!globalThis.__JS_SPIDER__) { + if (spider.__jsEvalReturn) { + globalThis.req = http + globalThis.__JS_SPIDER__ = spider.__jsEvalReturn() + } else if (spider.default) { + globalThis.__JS_SPIDER__ = typeof spider.default === 'function' ? spider.default() : spider.default + } +} \ No newline at end of file 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 d7498e409..5d4a1e6ba 100644 --- a/quickjs/src/main/java/com/fongmi/quickjs/crawler/Spider.java +++ b/quickjs/src/main/java/com/fongmi/quickjs/crawler/Spider.java @@ -209,13 +209,11 @@ public class Spider extends com.github.catvod.crawler.Spider { String spider = "__JS_SPIDER__"; String global = "globalThis." + spider; String content = Module.get().fetch(api); + if (content.startsWith("//bb")) ctx.execute(Module.get().bb(content), spider); + else ctx.evaluateModule(content.replace(spider, global), api); + ctx.evaluateModule(String.format(Path.asset("js/lib/spider.js"), api)); if (content.startsWith("//bb") || content.contains(jsEval)) cat = true; - if (content.startsWith("//bb")) ctx.execute(Module.get().bb(content), spider, jsEval); - else if (content.contains(jsEval)) ctx.evaluateModule(content, api, jsEval); - else if (content.contains(spider)) ctx.evaluateModule(content.replace(spider, global), api); - else ctx.evaluateModule(content.replaceAll("export default.*?[{]", global + " = {"), api); jsObject = (JSObject) ctx.getProperty(ctx.getGlobalObject(), spider); - if (cat) ctx.evaluate("req = http"); } private JSObject cfg(String ext) {