From 224c946898490f9df6f7630d96c7e799bd3852ab Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 11 Jul 2023 09:07:59 +0800 Subject: [PATCH] Add js demo --- .gitignore | 4 +-- app/build.gradle | 3 ++- .../com/github/catvod/crawler/Spider.java | 11 ++++++-- .../java/com/github/catvod/js/JSLoader.java | 14 ++++++++++ .../java/com/github/catvod/spider/Init.java | 2 ++ .../java/com/github/catvod/spider/JSDemo.java | 26 +++++++++++++++++++ .../java/com/github/catvod/spider/XPath.java | 5 ---- 7 files changed, 55 insertions(+), 10 deletions(-) create mode 100644 app/src/main/java/com/github/catvod/js/JSLoader.java create mode 100644 app/src/main/java/com/github/catvod/spider/JSDemo.java diff --git a/.gitignore b/.gitignore index d0e735c..bd8b3b4 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,6 @@ .idea *build *.jks -*i.java -*r.java +*ni.java +*ar.java /local.properties \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 5e07de9..99e929e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,7 +8,7 @@ android { defaultConfig { applicationId "com.github.catvod.demo" - minSdk 17 + minSdk 18 targetSdk 28 ndk { abiFilters "armeabi-v7a" } buildConfigField("String", "CLIENT_ID", "\"${clientId}\"") @@ -40,6 +40,7 @@ dependencies { implementation('com.github.thegrizzlylabs:sardine-android:0.8') { exclude group: 'com.squareup.okhttp3', module: 'okhttp' } implementation 'com.googlecode.juniversalchardet:juniversalchardet:1.0.3' implementation('com.squareup.okhttp3:okhttp:3.12.13') { force = true } + implementation 'wang.harlon.quickjs:wrapper-android:0.20.2' implementation 'com.google.net.cronet:cronet-okhttp:0.1.0' implementation 'com.google.code.gson:gson:2.8.6' implementation 'cn.wanghaomiao:JsoupXpath:2.5.1' diff --git a/app/src/main/java/com/github/catvod/crawler/Spider.java b/app/src/main/java/com/github/catvod/crawler/Spider.java index 67ebed5..29da127 100644 --- a/app/src/main/java/com/github/catvod/crawler/Spider.java +++ b/app/src/main/java/com/github/catvod/crawler/Spider.java @@ -34,15 +34,22 @@ public abstract class Spider { return ""; } + public String searchContent(String key, boolean quick, String pg) throws Exception { + return ""; + } + public String playerContent(String flag, String id, List vipFlags) throws Exception { return ""; } - public boolean manualVideoCheck() { + public boolean manualVideoCheck() throws Exception { return false; } - public boolean isVideoFormat(String url) { + public boolean isVideoFormat(String url) throws Exception { return false; } + + public void destroy() { + } } diff --git a/app/src/main/java/com/github/catvod/js/JSLoader.java b/app/src/main/java/com/github/catvod/js/JSLoader.java new file mode 100644 index 0000000..bbbbd08 --- /dev/null +++ b/app/src/main/java/com/github/catvod/js/JSLoader.java @@ -0,0 +1,14 @@ +package com.github.catvod.js; + +import com.whl.quickjs.android.QuickJSLoader; + +public class JSLoader { + + public static void init() { + try { + QuickJSLoader.init(); + } catch (Throwable ignored) { + } + } +} + diff --git a/app/src/main/java/com/github/catvod/spider/Init.java b/app/src/main/java/com/github/catvod/spider/Init.java index 2b4f357..6e3e7d9 100644 --- a/app/src/main/java/com/github/catvod/spider/Init.java +++ b/app/src/main/java/com/github/catvod/spider/Init.java @@ -7,6 +7,7 @@ import android.os.Handler; import android.os.Looper; import com.github.catvod.crawler.SpiderDebug; +import com.github.catvod.js.JSLoader; import java.lang.reflect.Field; import java.util.Map; @@ -39,6 +40,7 @@ public class Init { public static void init(Context context) { get().app = ((Application) context); SpiderDebug.log("自定義爬蟲代碼載入成功!"); + JSLoader.init(); } public static void execute(Runnable runnable) { diff --git a/app/src/main/java/com/github/catvod/spider/JSDemo.java b/app/src/main/java/com/github/catvod/spider/JSDemo.java new file mode 100644 index 0000000..e4a8476 --- /dev/null +++ b/app/src/main/java/com/github/catvod/spider/JSDemo.java @@ -0,0 +1,26 @@ +package com.github.catvod.spider; + +import android.content.Context; + +import com.github.catvod.crawler.Spider; +import com.github.catvod.crawler.SpiderDebug; +import com.whl.quickjs.wrapper.QuickJSContext; + +public class JSDemo extends Spider { + + private QuickJSContext jsContext; + + @Override + public void init(Context context, String extend) { + jsContext = QuickJSContext.create(); + jsContext.evaluate("var text = 'Hello QuickJS';"); + String text = jsContext.getGlobalObject().getString("text"); + SpiderDebug.log(text); + } + + @Override + public void destroy() { + super.destroy(); + jsContext.destroy(); + } +} diff --git a/app/src/main/java/com/github/catvod/spider/XPath.java b/app/src/main/java/com/github/catvod/spider/XPath.java index 4e4605f..c260a9b 100644 --- a/app/src/main/java/com/github/catvod/spider/XPath.java +++ b/app/src/main/java/com/github/catvod/spider/XPath.java @@ -32,12 +32,7 @@ public class XPath extends Spider { } @Override - public void init(Context context) { - super.init(context); - } - public void init(Context context, String extend) { - super.init(context, extend); this.ext = extend; }