This commit is contained in:
FongMi 2022-11-16 12:52:45 +08:00
parent 966cf98d0c
commit 2ea28a58b6
4 changed files with 16 additions and 2 deletions

View File

@ -1,6 +1,7 @@
package com.github.catvod.spider; package com.github.catvod.spider;
import android.content.Context; import android.content.Context;
import android.os.Build;
import android.os.SystemClock; import android.os.SystemClock;
import android.webkit.WebView; import android.webkit.WebView;
import android.webkit.WebViewClient; import android.webkit.WebViewClient;
@ -38,10 +39,11 @@ public class YiSo extends Spider {
@Override @Override
public String searchContent(String key, boolean quick) { public String searchContent(String key, boolean quick) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) return "";
String url = "https://yiso.fun/api/search?name=" + URLEncoder.encode(key) + "&from=ali"; String url = "https://yiso.fun/api/search?name=" + URLEncoder.encode(key) + "&from=ali";
Map<String, String> result = new HashMap<>(); Map<String, String> result = new HashMap<>();
Misc.loadWebView(url, getWebViewClient(result)); Misc.loadWebView(url, getWebViewClient(result));
while (!result.containsKey("json")) SystemClock.sleep(250); while (!result.containsKey("json")) SystemClock.sleep(50);
String json = JsonParser.parseString(Objects.requireNonNull(result.get("json"))).getAsJsonPrimitive().getAsString(); String json = JsonParser.parseString(Objects.requireNonNull(result.get("json"))).getAsJsonPrimitive().getAsString();
return Result.string(Item.objectFrom(json).getData().getList()); return Result.string(Item.objectFrom(json).getData().getList());
} }
@ -50,6 +52,7 @@ public class YiSo extends Spider {
return new WebViewClient() { return new WebViewClient() {
@Override @Override
public void onPageFinished(WebView view, String url) { public void onPageFinished(WebView view, String url) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) return;
view.evaluateJavascript("document.getElementsByTagName('pre')[0].textContent", value -> { view.evaluateJavascript("document.getElementsByTagName('pre')[0].textContent", value -> {
if (!value.equals("null")) result.put("json", value); if (!value.equals("null")) result.put("json", value);
}); });

View File

@ -1,10 +1,12 @@
package com.github.catvod.utils; package com.github.catvod.utils;
import android.net.Uri; import android.net.Uri;
import android.os.Build;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
import android.util.TypedValue; import android.util.TypedValue;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.webkit.ValueCallback;
import android.webkit.WebView; import android.webkit.WebView;
import android.webkit.WebViewClient; import android.webkit.WebViewClient;
@ -151,6 +153,15 @@ public class Misc {
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, getDisplayMetrics()); return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, getDisplayMetrics());
} }
public static void loadUrl(WebView webView, String script) {
loadUrl(webView, script, null);
}
public static void loadUrl(WebView webView, String script, ValueCallback<String> callback) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) webView.evaluateJavascript(script, callback);
else webView.loadUrl(script);
}
public static void addView(View view, ViewGroup.LayoutParams params) { public static void addView(View view, ViewGroup.LayoutParams params) {
ViewGroup group = Init.getActivity().getWindow().getDecorView().findViewById(android.R.id.content); ViewGroup group = Init.getActivity().getWindow().getDecorView().findViewById(android.R.id.content);
group.addView(view, params); group.addView(view, params);

Binary file not shown.

View File

@ -1 +1 @@
efc8d7ab428b7bb8459f6d5614388ee2 1d6994a4a39ca10ec37a3936e5cad909