Clean quickjs code

release
FongMi 2 months ago
parent a9c6b6025f
commit a950a9ae69
  1. 3
      quickjs/src/main/java/com/fongmi/quickjs/crawler/Spider.java
  2. 17
      quickjs/src/main/java/com/fongmi/quickjs/utils/Async.java
  3. 14
      quickjs/src/main/java/com/fongmi/quickjs/utils/Module.java

@ -35,9 +35,10 @@ public class Spider extends com.github.catvod.crawler.Spider {
private final ExecutorService executor;
private final DexClassLoader dex;
private final String api;
private QuickJSContext ctx;
private JSObject jsObject;
private final String api;
private boolean cat;
public Spider(String api, DexClassLoader dex) {

@ -10,14 +10,14 @@ public class Async {
private CompletableFuture<Object> future;
public static CompletableFuture<Object> run(JSObject object, String name, Object... args) {
return new Async().call(object, name, args);
}
private Async() {
this.future = new CompletableFuture<>();
}
public static CompletableFuture<Object> run(JSObject object, String name, Object... args) {
return new Async().call(object, name, args);
}
private CompletableFuture<Object> call(JSObject object, String name, Object... args) {
JSFunction func = object.getJSFunction(name);
if (func == null) return empty();
@ -47,8 +47,8 @@ public class Async {
if (then == null) {
future.complete(promise);
} else {
consume(then, onSuccess);
consume(promise.getJSFunction("catch"), onError);
consume(then, success);
consume(promise.getJSFunction("catch"), error);
}
}
@ -61,14 +61,15 @@ public class Async {
}
}
private final JSCallFunction onSuccess = args -> {
private final JSCallFunction success = args -> {
future.complete(args != null && args.length > 0 ? args[0] : null);
return null;
};
private final JSCallFunction onError = args -> {
private final JSCallFunction error = args -> {
String msg = args != null && args.length > 0 && args[0] != null ? args[0].toString() : "";
future.completeExceptionally(new Exception(msg));
return null;
};
}

@ -8,21 +8,17 @@ import com.github.catvod.utils.Asset;
public class Module {
private final LruCache<String, String> cache;
private static final int MAX_SIZE = 50;
private final LruCache<String, String> cache;
private static class Loader {
static volatile Module INSTANCE = new Module();
public Module() {
cache = new LruCache<>(MAX_SIZE);
}
public static Module get() {
return Loader.INSTANCE;
}
public Module() {
cache = new LruCache<>(MAX_SIZE);
}
public String fetch(String name) {
String content = cache.get(name);
if (!TextUtils.isEmpty(content)) return content;
@ -35,4 +31,8 @@ public class Module {
public void clear() {
cache.evictAll();
}
private static class Loader {
static volatile Module INSTANCE = new Module();
}
}

Loading…
Cancel
Save