Support drpy - part 4

pull/123/head
FongMi 3 years ago
parent 523500b625
commit 70ad020b25
  1. 5
      drpy/build.gradle
  2. 20
      drpy/src/main/java/com/hiker/drpy/Loader.java
  3. 27
      drpy/src/main/java/com/hiker/drpy/Spider.java
  4. 6
      drpy/src/main/java/com/hiker/drpy/method/Console.java
  5. 8
      drpy/src/main/java/com/hiker/drpy/method/Global.java
  6. 2
      drpy/src/main/java/com/hiker/drpy/method/Local.java

@ -8,12 +8,13 @@ android {
defaultConfig {
minSdk 21
targetSdk 33
ndk { abiFilters "armeabi-v7a" }
}
}
dependencies {
implementation project(':catvod')
implementation 'wang.harlon.quickjs:wrapper-android:0.6.0'
implementation 'wang.harlon.quickjs:wrapper-android:0.11.0'
implementation 'com.squareup.okhttp3:okhttp:5.0.0-alpha.10'
implementation 'com.google.code.gson:gson:2.10'
implementation 'org.jsoup:jsoup:1.15.3'
}

@ -1,23 +1,31 @@
package com.hiker.drpy;
import com.github.tvbox.quickjs.JSModule;
import com.github.tvbox.quickjs.QuickJSContext;
import com.hiker.drpy.method.Console;
import com.hiker.drpy.method.Global;
import com.hiker.drpy.method.Local;
import com.whl.quickjs.android.QuickJSLoader;
import com.whl.quickjs.wrapper.JSModule;
import com.whl.quickjs.wrapper.QuickJSContext;
public class Loader {
private QuickJSContext ctx;
static {
System.loadLibrary("quickjs");
QuickJSLoader.init();
}
public Loader() {
Worker.submit(() -> {
JSModule.setModuleLoader(name -> Module.get().load(name));
initCtx();
setModuleLoader();
Worker.submit(this::initCtx);
}
private void setModuleLoader() {
JSModule.setModuleLoader(new JSModule.ModuleLoader() {
@Override
public String getModuleScript(String moduleName) {
return Module.get().load(moduleName);
}
});
}

@ -2,8 +2,9 @@ package com.hiker.drpy;
import android.content.Context;
import com.github.tvbox.quickjs.JSObject;
import com.github.tvbox.quickjs.QuickJSContext;
import com.whl.quickjs.wrapper.JSArray;
import com.whl.quickjs.wrapper.JSObject;
import com.whl.quickjs.wrapper.QuickJSContext;
import java.util.HashMap;
import java.util.List;
@ -58,8 +59,8 @@ public class Spider extends com.github.catvod.crawler.Spider {
@Override
public String categoryContent(String tid, String pg, boolean filter, HashMap<String, String> extend) throws Exception {
//TODO extend
return post("category", tid, pg, filter, null);
JSObject obj = Worker.submit(() -> convert(extend)).get();
return post("category", tid, pg, filter, obj);
}
@Override
@ -74,7 +75,21 @@ public class Spider extends com.github.catvod.crawler.Spider {
@Override
public String playerContent(String flag, String id, List<String> vipFlags) throws Exception {
//TODO vipFlags
return post("play", flag, id, null);
JSArray array = Worker.submit(() -> convert(vipFlags)).get();
return post("play", flag, id, array);
}
private JSObject convert(HashMap<String, String> map) {
JSObject obj = ctx.createNewJSObject();
if (map == null || map.isEmpty()) return obj;
for (String s : map.keySet()) obj.setProperty(s, map.get(s));
return obj;
}
private JSArray convert(List<String> items) {
JSArray array = ctx.createNewJSArray();
if (items == null || items.isEmpty()) return array;
for (int i = 0; i < items.size(); i++) array.set(items.get(i), i);
return array;
}
}

@ -2,14 +2,14 @@ package com.hiker.drpy.method;
import android.util.Log;
import com.github.tvbox.quickjs.JSMethod;
import com.whl.quickjs.wrapper.JSMethod;
public class Console {
private final String TAG = Console.class.getSimpleName();
@JSMethod
public void log(String msg) {
Log.d(TAG, msg);
public void log(Object msg) {
Log.d(TAG, String.valueOf(msg));
}
}

@ -3,13 +3,13 @@ package com.hiker.drpy.method;
import android.text.TextUtils;
import android.util.Base64;
import com.github.tvbox.quickjs.JSArray;
import com.github.tvbox.quickjs.JSMethod;
import com.github.tvbox.quickjs.JSObject;
import com.github.tvbox.quickjs.QuickJSContext;
import com.google.gson.Gson;
import com.hiker.drpy.Parser;
import com.hiker.drpy.net.OkHttp;
import com.whl.quickjs.wrapper.JSArray;
import com.whl.quickjs.wrapper.JSMethod;
import com.whl.quickjs.wrapper.JSObject;
import com.whl.quickjs.wrapper.QuickJSContext;
import org.json.JSONObject;

@ -1,6 +1,6 @@
package com.hiker.drpy.method;
import com.github.tvbox.quickjs.JSMethod;
import com.whl.quickjs.wrapper.JSMethod;
import java.util.HashMap;
import java.util.Map;

Loading…
Cancel
Save