From 216f1a56325dda9b75fbe95b5f02f92a223fb91d Mon Sep 17 00:00:00 2001 From: gzlinz2 <107169210+gzlinz2@users.noreply.github.com> Date: Mon, 10 Oct 2022 22:53:18 +0800 Subject: [PATCH] Add files via upload --- .../java/com/github/catvod/spider/YiSo.java | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 app/src/main/java/com/github/catvod/spider/YiSo.java diff --git a/app/src/main/java/com/github/catvod/spider/YiSo.java b/app/src/main/java/com/github/catvod/spider/YiSo.java new file mode 100644 index 0000000..09a8557 --- /dev/null +++ b/app/src/main/java/com/github/catvod/spider/YiSo.java @@ -0,0 +1,59 @@ +package com.github.catvod.spider; + +import android.content.Context; +import android.os.SystemClock; +import android.webkit.WebView; +import android.webkit.WebViewClient; + +import com.github.catvod.bean.Result; +import com.github.catvod.bean.yiso.Item; +import com.github.catvod.crawler.Spider; +import com.github.catvod.utils.Misc; +import com.google.gson.JsonParser; + +import java.net.URLEncoder; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +public class YiSo extends Spider { + + private Ali ali; + + @Override + public void init(Context context, String extend) { + ali = new Ali(extend); + } + + @Override + public String detailContent(List ids) throws Exception { + return ali.detailContent(ids); + } + + @Override + public String playerContent(String flag, String id, List vipFlags) throws Exception { + return ali.playerContent(flag, id); + } + + @Override + public String searchContent(String key, boolean quick) { + String url = "https://yiso.fun/api/search?name=" + URLEncoder.encode(key) + "&from=ali"; + Map result = new HashMap<>(); + Misc.loadWebView(url, getWebViewClient(result)); + while (!result.containsKey("json")) SystemClock.sleep(250); + String json = JsonParser.parseString(Objects.requireNonNull(result.get("json"))).getAsJsonPrimitive().getAsString(); + return Result.string(Item.objectFrom(json).getData().getList()); + } + + private WebViewClient getWebViewClient(Map result) { + return new WebViewClient() { + @Override + public void onPageFinished(WebView view, String url) { + view.evaluateJavascript("document.getElementsByTagName('pre')[0].textContent", value -> { + if (!value.equals("null")) result.put("json", value); + }); + } + }; + } +}