diff --git a/app/src/main/java/com/github/catvod/bean/ali/Auth.java b/app/src/main/java/com/github/catvod/bean/ali/Auth.java index 2e74bfa2..92855641 100644 --- a/app/src/main/java/com/github/catvod/bean/ali/Auth.java +++ b/app/src/main/java/com/github/catvod/bean/ali/Auth.java @@ -1,7 +1,6 @@ package com.github.catvod.bean.ali; import android.text.TextUtils; -import android.widget.ImageView; public class Auth { @@ -9,7 +8,6 @@ public class Auth { private String accessToken; private String shareToken; private String shareId; - private ImageView view; public String getRefreshToken() { return TextUtils.isEmpty(refreshToken) ? "" : refreshToken; @@ -43,14 +41,6 @@ public class Auth { this.shareId = shareId; } - public ImageView getView() { - return view; - } - - public void setView(ImageView view) { - this.view = view; - } - public boolean isEmpty() { return getAccessToken().isEmpty(); } diff --git a/app/src/main/java/com/github/catvod/bean/ali/Biz.java b/app/src/main/java/com/github/catvod/bean/ali/Biz.java new file mode 100644 index 00000000..aa9d554f --- /dev/null +++ b/app/src/main/java/com/github/catvod/bean/ali/Biz.java @@ -0,0 +1,66 @@ +package com.github.catvod.bean.ali; + +import com.google.gson.Gson; +import com.google.gson.annotations.SerializedName; + +import java.util.List; + +public class Biz { + + @SerializedName("pds_login_result") + private Biz pdsLoginResult; + @SerializedName("role") + private String role; + @SerializedName("isFirstLogin") + private Boolean isFirstLogin; + @SerializedName("needLink") + private Boolean needLink; + @SerializedName("loginType") + private String loginType; + @SerializedName("nickName") + private String nickName; + @SerializedName("needRpVerify") + private Boolean needRpVerify; + @SerializedName("avatar") + private String avatar; + @SerializedName("accessToken") + private String accessToken; + @SerializedName("userName") + private String userName; + @SerializedName("userId") + private String userId; + @SerializedName("defaultDriveId") + private String defaultDriveId; + @SerializedName("existLink") + private List existLink; + @SerializedName("expiresIn") + private Integer expiresIn; + @SerializedName("expireTime") + private String expireTime; + @SerializedName("requestId") + private String requestId; + @SerializedName("dataPinSetup") + private Boolean dataPinSetup; + @SerializedName("state") + private String state; + @SerializedName("tokenType") + private String tokenType; + @SerializedName("dataPinSaved") + private Boolean dataPinSaved; + @SerializedName("refreshToken") + private String refreshToken; + @SerializedName("status") + private String status; + + public static Biz objectFrom(String str) { + return new Gson().fromJson(str, Biz.class); + } + + public Biz getPdsLoginResult() { + return pdsLoginResult; + } + + public String getRefreshToken() { + return refreshToken; + } +} diff --git a/app/src/main/java/com/github/catvod/bean/ali/Data.java b/app/src/main/java/com/github/catvod/bean/ali/Data.java index a6ad82e8..5b083d27 100644 --- a/app/src/main/java/com/github/catvod/bean/ali/Data.java +++ b/app/src/main/java/com/github/catvod/bean/ali/Data.java @@ -1,24 +1,34 @@ package com.github.catvod.bean.ali; +import android.util.Base64; + import com.google.gson.Gson; import com.google.gson.annotations.SerializedName; +import java.util.HashMap; +import java.util.Map; + public class Data { - @SerializedName(value = "data", alternate = "pds_login_result") + @SerializedName("data") private Data data; + @SerializedName("content") + private Data content; @SerializedName("t") private String t; @SerializedName("ck") private String ck; @SerializedName("codeContent") private String codeContent; - @SerializedName("refreshToken") - private String refreshToken; + @SerializedName("qrCodeStatus") + private String qrCodeStatus; + @SerializedName("bizExt") + private String bizExt; public static Data objectFrom(String str) { try { - return new Gson().fromJson(str, Data.class); + Data data = new Gson().fromJson(str, Data.class); + return data == null ? new Data() : data; } catch (Exception e) { return new Data(); } @@ -28,8 +38,8 @@ public class Data { return data == null ? new Data() : data; } - public boolean hasToken() { - return getData().getRefreshToken().length() > 0; + public Data getContent() { + return content == null ? new Data() : content; } public String getT() { @@ -44,7 +54,35 @@ public class Data { return codeContent == null ? "" : codeContent; } - public String getRefreshToken() { - return refreshToken == null ? "" : refreshToken; + public String getQrCodeStatus() { + return qrCodeStatus == null ? "" : qrCodeStatus; + } + + public String getBizExt() { + return bizExt == null ? "" : bizExt; + } + + public String getToken() { + return Biz.objectFrom(new String(Base64.decode(getBizExt(), Base64.DEFAULT))).getPdsLoginResult().getRefreshToken(); + } + + public boolean hasToken() { + return getQrCodeStatus().equals("CONFIRMED") && getBizExt().length() > 0; + } + + public Map getParams() { + Map params = new HashMap<>(); + params.put("t", getT()); + params.put("ck", getCk()); + params.put("appName", "aliyun_drive"); + params.put("appEntrance", "web"); + params.put("isMobile", "false"); + params.put("lang", "zh_CN"); + params.put("returnUrl", ""); + params.put("fromSite", "52"); + params.put("bizParams", ""); + params.put("navlanguage", "zh-CN"); + params.put("navPlatform", "MacIntel"); + return params; } } diff --git a/app/src/main/java/com/github/catvod/bean/ali/Item.java b/app/src/main/java/com/github/catvod/bean/ali/Item.java index d7437f83..763aede4 100644 --- a/app/src/main/java/com/github/catvod/bean/ali/Item.java +++ b/app/src/main/java/com/github/catvod/bean/ali/Item.java @@ -2,7 +2,7 @@ package com.github.catvod.bean.ali; import android.text.TextUtils; -import com.github.catvod.utils.Misc; +import com.github.catvod.utils.Utils; import com.google.gson.Gson; import com.google.gson.annotations.SerializedName; @@ -70,7 +70,7 @@ public class Item { } public String getSize() { - return size == 0 ? "" : "[" + Misc.getSize(size) + "]"; + return size == 0 ? "" : "[" + Utils.getSize(size) + "]"; } public String getParent() { diff --git a/app/src/main/java/com/github/catvod/bean/alist/Item.java b/app/src/main/java/com/github/catvod/bean/alist/Item.java index 5dd1a7fb..b051d003 100644 --- a/app/src/main/java/com/github/catvod/bean/alist/Item.java +++ b/app/src/main/java/com/github/catvod/bean/alist/Item.java @@ -3,7 +3,7 @@ package com.github.catvod.bean.alist; import android.text.TextUtils; import com.github.catvod.bean.Vod; -import com.github.catvod.utils.Misc; +import com.github.catvod.utils.Utils; import com.google.gson.Gson; import com.google.gson.annotations.SerializedName; import com.google.gson.reflect.TypeToken; @@ -116,7 +116,7 @@ public class Item { } public String getRemark() { - return Misc.getSize(getSize()) + (isFolder() ? " 文件夹" : ""); + return Utils.getSize(getSize()) + (isFolder() ? " 文件夹" : ""); } public String getVodTag() { diff --git a/app/src/main/java/com/github/catvod/xpath/XPathRule.java b/app/src/main/java/com/github/catvod/bean/xpath/Rule.java similarity index 99% rename from app/src/main/java/com/github/catvod/xpath/XPathRule.java rename to app/src/main/java/com/github/catvod/bean/xpath/Rule.java index 17a73afb..78c9f326 100644 --- a/app/src/main/java/com/github/catvod/xpath/XPathRule.java +++ b/app/src/main/java/com/github/catvod/bean/xpath/Rule.java @@ -1,4 +1,4 @@ -package com.github.catvod.xpath; +package com.github.catvod.bean.xpath; import com.github.catvod.crawler.SpiderDebug; @@ -9,7 +9,7 @@ import java.util.LinkedHashMap; import java.util.regex.Matcher; import java.util.regex.Pattern; -public class XPathRule { +public class Rule { /** * user-agent */ @@ -325,10 +325,10 @@ public class XPathRule { return src; } - public static XPathRule fromJson(String json) { + public static Rule fromJson(String json) { try { JSONObject jsonObj = new JSONObject(json); - XPathRule rule = new XPathRule(); + Rule rule = new Rule(); rule.ua = jsonObj.optString("ua"); rule.homeUrl = jsonObj.optString("homeUrl").trim(); rule.cateNode = jsonObj.optString("cateNode").trim(); diff --git a/app/src/main/java/com/github/catvod/net/OkRequest.java b/app/src/main/java/com/github/catvod/net/OkRequest.java index ded7f5b6..c1ddf792 100644 --- a/app/src/main/java/com/github/catvod/net/OkRequest.java +++ b/app/src/main/java/com/github/catvod/net/OkRequest.java @@ -2,7 +2,7 @@ package com.github.catvod.net; import android.text.TextUtils; -import com.github.catvod.utils.Misc; +import com.github.catvod.utils.Utils; import java.io.IOException; import java.util.List; @@ -68,7 +68,7 @@ class OkRequest { private void setParams() { url = url + "?"; for (String key : params.keySet()) url = url.concat(key + "=" + params.get(key) + "&"); - url = Misc.substring(url); + url = Utils.substring(url); } public String execute(OkHttpClient client) { diff --git a/app/src/main/java/com/github/catvod/parser/JsonBasic.java b/app/src/main/java/com/github/catvod/parser/JsonBasic.java index a4cbd928..2f5b204c 100644 --- a/app/src/main/java/com/github/catvod/parser/JsonBasic.java +++ b/app/src/main/java/com/github/catvod/parser/JsonBasic.java @@ -4,7 +4,7 @@ import android.util.Base64; import com.github.catvod.crawler.SpiderDebug; import com.github.catvod.net.OkHttp; -import com.github.catvod.utils.Misc; +import com.github.catvod.utils.Utils; import org.json.JSONObject; @@ -27,7 +27,7 @@ public class JsonBasic { reqHeaders.remove("url"); SpiderDebug.log(realUrl + url); String json = OkHttp.string(realUrl + url, reqHeaders); - JSONObject taskResult = Misc.jsonParse(url, json); + JSONObject taskResult = Utils.jsonParse(url, json); if (taskResult == null) continue; taskResult.put("jxFrom", jxName); SpiderDebug.log(taskResult.toString()); diff --git a/app/src/main/java/com/github/catvod/parser/JsonParallel.java b/app/src/main/java/com/github/catvod/parser/JsonParallel.java index 30fe5a62..d206e89e 100644 --- a/app/src/main/java/com/github/catvod/parser/JsonParallel.java +++ b/app/src/main/java/com/github/catvod/parser/JsonParallel.java @@ -2,7 +2,7 @@ package com.github.catvod.parser; import com.github.catvod.crawler.SpiderDebug; import com.github.catvod.net.OkHttp; -import com.github.catvod.utils.Misc; +import com.github.catvod.utils.Utils; import org.json.JSONObject; @@ -36,7 +36,7 @@ public class JsonParallel { reqHeaders.remove("url"); SpiderDebug.log(realUrl + url); String json = OkHttp.string(realUrl + url, ParseOKTag, reqHeaders); - JSONObject taskResult = Misc.jsonParse(url, json); + JSONObject taskResult = Utils.jsonParse(url, json); taskResult.put("jxFrom", jxName); SpiderDebug.log(taskResult.toString()); return taskResult; diff --git a/app/src/main/java/com/github/catvod/parser/JsonSequence.java b/app/src/main/java/com/github/catvod/parser/JsonSequence.java index b6ebde4e..c82a438d 100644 --- a/app/src/main/java/com/github/catvod/parser/JsonSequence.java +++ b/app/src/main/java/com/github/catvod/parser/JsonSequence.java @@ -2,7 +2,7 @@ package com.github.catvod.parser; import com.github.catvod.crawler.SpiderDebug; import com.github.catvod.net.OkHttp; -import com.github.catvod.utils.Misc; +import com.github.catvod.utils.Utils; import org.json.JSONObject; @@ -23,7 +23,7 @@ public class JsonSequence { reqHeaders.remove("url"); SpiderDebug.log(realUrl + url); String json = OkHttp.string(realUrl + url, reqHeaders); - JSONObject taskResult = Misc.jsonParse(url, json); + JSONObject taskResult = Utils.jsonParse(url, json); if (taskResult == null) continue; taskResult.put("jxFrom", jxName); return taskResult; diff --git a/app/src/main/java/com/github/catvod/spider/AList.java b/app/src/main/java/com/github/catvod/spider/AList.java index ac50f1d6..60af51f4 100644 --- a/app/src/main/java/com/github/catvod/spider/AList.java +++ b/app/src/main/java/com/github/catvod/spider/AList.java @@ -13,7 +13,7 @@ import com.github.catvod.bean.alist.Item; import com.github.catvod.bean.alist.Sorter; import com.github.catvod.crawler.Spider; import com.github.catvod.net.OkHttp; -import com.github.catvod.utils.Misc; +import com.github.catvod.utils.Utils; import com.github.catvod.utils.Trans; import org.json.JSONObject; @@ -200,7 +200,7 @@ public class AList extends Spider { private String findSubs(String path, List items) { StringBuilder sb = new StringBuilder(); - for (Item item : items) if (Misc.isSub(item.getExt())) sb.append("~~~").append(item.getName()).append("@@@").append(item.getExt()).append("@@@").append(item.getVodId(path)); + for (Item item : items) if (Utils.isSub(item.getExt())) sb.append("~~~").append(item.getName()).append("@@@").append(item.getExt()).append("@@@").append(item.getVodId(path)); return sb.toString(); } diff --git a/app/src/main/java/com/github/catvod/spider/Ali.java b/app/src/main/java/com/github/catvod/spider/Ali.java index 828beec4..00d5b7c8 100644 --- a/app/src/main/java/com/github/catvod/spider/Ali.java +++ b/app/src/main/java/com/github/catvod/spider/Ali.java @@ -1,5 +1,9 @@ package com.github.catvod.spider; +import android.app.AlertDialog; +import android.content.DialogInterface; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; import android.os.SystemClock; import android.text.TextUtils; import android.view.Gravity; @@ -13,11 +17,10 @@ import com.github.catvod.bean.ali.Auth; import com.github.catvod.bean.ali.Data; import com.github.catvod.bean.ali.Item; import com.github.catvod.net.OkHttp; -import com.github.catvod.utils.Misc; import com.github.catvod.utils.Prefers; import com.github.catvod.utils.QRCode; import com.github.catvod.utils.Trans; -import com.google.gson.JsonObject; +import com.github.catvod.utils.Utils; import org.json.JSONArray; import org.json.JSONObject; @@ -43,6 +46,7 @@ public class Ali { public static final Pattern pattern = Pattern.compile("www.aliyundrive.com/s/([^/]+)(/folder/([^/]+))?"); private ScheduledExecutorService service; private final Auth auth; + private AlertDialog dialog; private static class Loader { static volatile Ali INSTANCE = new Ali(); @@ -63,7 +67,7 @@ public class Ali { private HashMap getHeaders() { HashMap headers = new HashMap<>(); - headers.put("User-Agent", Misc.CHROME); + headers.put("User-Agent", Utils.CHROME); headers.put("Referer", "https://www.aliyundrive.com/"); return headers; } @@ -100,7 +104,8 @@ public class Ali { if (!matcher.find()) return ""; String shareId = matcher.group(1); String fileId = matcher.groupCount() == 3 ? matcher.group(3) : ""; - auth.setShareId(shareId); refreshShareToken(); + auth.setShareId(shareId); + refreshShareToken(); return Result.string(getVod(url, fileId)); } @@ -157,7 +162,7 @@ public class Ali { folders.add(file); } else if (file.getCategory().equals("video") || file.getCategory().equals("audio")) { files.add(file.parent(parent.getName())); - } else if (Misc.isSub(file.getExt())) { + } else if (Utils.isSub(file.getExt())) { String key = file.removeExt(); if (!subMap.containsKey(key)) subMap.put(key, new ArrayList<>()); subMap.get(key).add(key + "@@@" + file.getExt() + "@@@" + file.getFileId()); @@ -193,7 +198,7 @@ public class Ali { auth.setRefreshToken(object.getString("refresh_token")); return true; } catch (Exception e) { - checkService(); + stopService(); auth.clean(); getQRCode(); return true; @@ -302,23 +307,33 @@ public class Ali { return result; } - private void checkService() { - if (service != null) service.shutdownNow(); - if (auth.getView() != null) Init.run(() -> Misc.removeView(auth.getView())); + private void getQRCode() { + Data data = Data.objectFrom(OkHttp.string("https://passport.aliyundrive.com/newlogin/qrcode/generate.do?appName=aliyun_drive&fromSite=52&appName=aliyun_drive&appEntrance=web&isMobile=false&lang=zh_CN&returnUrl=&bizParams=&_bx-v=2.2.3")).getContent().getData(); + Init.run(() -> showQRCode(data)); } - private void getQRCode() { - HashMap headers = new HashMap<>(); - headers.put("User-Agent", Misc.CHROME); - Data data = Data.objectFrom(OkHttp.string("https://token.cooluc.com/qr", headers)); - if (data != null) Init.run(() -> showCode(data)); + private void showQRCode(Data data) { + try { + FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(Utils.dp2px(240), Utils.dp2px(240)); + ImageView image = new ImageView(Init.context()); + image.setScaleType(ImageView.ScaleType.CENTER_CROP); + image.setImageBitmap(QRCode.getBitmap(data.getCodeContent(), 240, 2)); + FrameLayout frame = new FrameLayout(Init.context()); + params.gravity = Gravity.CENTER; + frame.addView(image, params); + dialog = new AlertDialog.Builder(Init.getActivity()).setView(frame).setOnDismissListener(this::dismiss).show(); + dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + Init.execute(() -> startService(data.getParams())); + Init.show("請使用阿里雲盤 App 掃描二維碼"); + } catch (Exception ignored) { + } + } + + private void startService(Map params) { service = Executors.newScheduledThreadPool(1); - if (data != null) service.scheduleAtFixedRate(() -> { - JsonObject params = new JsonObject(); - params.addProperty("t", data.getData().getT()); - params.addProperty("ck", data.getData().getCk()); - Data result = Data.objectFrom(OkHttp.postJson("https://easy-token.cooluc.com/ck", params.toString(), headers)); - if (result.hasToken()) setToken(result.getData().getRefreshToken()); + service.scheduleAtFixedRate(() -> { + Data result = Data.objectFrom(OkHttp.post("https://passport.aliyundrive.com/newlogin/qrcode/query.do?appName=aliyun_drive&fromSite=52&_bx-v=2.2.3", params)).getContent().getData(); + if (result.hasToken()) setToken(result.getToken()); }, 1, 1, TimeUnit.SECONDS); } @@ -326,21 +341,22 @@ public class Ali { Prefers.put("token", value); Init.show("請重新進入播放頁"); auth.setRefreshToken(value); - checkService(); + stopService(); } - private void showCode(Data data) { - FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT); - params.gravity = Gravity.CENTER; - Misc.addView(create(data.getData().getCodeContent()), params); - Init.show("請使用阿里雲盤 App 掃描二維碼"); + private void stopService() { + if (service != null) service.shutdownNow(); + Init.run(this::dismiss); } - private ImageView create(String value) { - ImageView view = new ImageView(Init.context()); - view.setScaleType(ImageView.ScaleType.CENTER_CROP); - view.setImageBitmap(QRCode.getBitmap(value, 250, 2)); - auth.setView(view); - return view; + private void dismiss(DialogInterface dialog) { + stopService(); + } + + private void dismiss() { + try { + if (dialog != null) dialog.dismiss(); + } catch (Exception ignored) { + } } } \ No newline at end of file diff --git a/app/src/main/java/com/github/catvod/spider/Bili11.java b/app/src/main/java/com/github/catvod/spider/Bili11.java index a1ffb61c..574bf3b9 100644 --- a/app/src/main/java/com/github/catvod/spider/Bili11.java +++ b/app/src/main/java/com/github/catvod/spider/Bili11.java @@ -8,7 +8,7 @@ import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; import com.github.catvod.net.OkHttp; -import com.github.catvod.utils.Misc; +import com.github.catvod.utils.Utils; import com.github.catvod.utils.Trans; import org.json.JSONArray; @@ -38,7 +38,7 @@ public class Bili11 extends Spider { private void setHeader() throws Exception { header.put("cookie", getCookie(ext.getString("cookie"))); - header.put("User-Agent", Misc.CHROME); + header.put("User-Agent", Utils.CHROME); header.put("Referer", url); } diff --git a/app/src/main/java/com/github/catvod/spider/Dm84.java b/app/src/main/java/com/github/catvod/spider/Dm84.java index b2f06fb9..b07d7977 100644 --- a/app/src/main/java/com/github/catvod/spider/Dm84.java +++ b/app/src/main/java/com/github/catvod/spider/Dm84.java @@ -8,7 +8,7 @@ import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; import com.github.catvod.net.OkHttp; -import com.github.catvod.utils.Misc; +import com.github.catvod.utils.Utils; import com.github.catvod.utils.Trans; import org.jsoup.Jsoup; @@ -32,7 +32,7 @@ public class Dm84 extends Spider { private HashMap getHeaders() { HashMap headers = new HashMap<>(); - headers.put("User-Agent", Misc.CHROME); + headers.put("User-Agent", Utils.CHROME); return headers; } diff --git a/app/src/main/java/com/github/catvod/spider/Doll.java b/app/src/main/java/com/github/catvod/spider/Doll.java index b673b4ac..df24760f 100644 --- a/app/src/main/java/com/github/catvod/spider/Doll.java +++ b/app/src/main/java/com/github/catvod/spider/Doll.java @@ -9,7 +9,7 @@ import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; import com.github.catvod.net.OkHttp; -import com.github.catvod.utils.Misc; +import com.github.catvod.utils.Utils; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; @@ -75,7 +75,7 @@ public class Doll extends Spider { @Override public String playerContent(String flag, String id, List vipFlags) throws Exception { HashMap result = new HashMap<>(); - Misc.loadWebView(url + id, getClient(result)); + Utils.loadWebView(url + id, getClient(result)); while (result.isEmpty()) SystemClock.sleep(10); return Result.get().url(result.get("url")).string(); } diff --git a/app/src/main/java/com/github/catvod/spider/Eighteen.java b/app/src/main/java/com/github/catvod/spider/Eighteen.java index 9d97c1b8..829b1e61 100644 --- a/app/src/main/java/com/github/catvod/spider/Eighteen.java +++ b/app/src/main/java/com/github/catvod/spider/Eighteen.java @@ -9,7 +9,7 @@ import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; import com.github.catvod.net.OkHttp; -import com.github.catvod.utils.Misc; +import com.github.catvod.utils.Utils; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; @@ -97,7 +97,7 @@ public class Eighteen extends Spider { @Override public String playerContent(String flag, String id, List vipFlags) throws Exception { HashMap result = new HashMap<>(); - Misc.loadWebView(url + id, getClient(result)); + Utils.loadWebView(url + id, getClient(result)); while (result.isEmpty()) SystemClock.sleep(10); return Result.get().url(result.get("url")).string(); } diff --git a/app/src/main/java/com/github/catvod/spider/Hanime.java b/app/src/main/java/com/github/catvod/spider/Hanime.java index 5068e763..ea75ec67 100644 --- a/app/src/main/java/com/github/catvod/spider/Hanime.java +++ b/app/src/main/java/com/github/catvod/spider/Hanime.java @@ -6,7 +6,7 @@ import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; import com.github.catvod.net.OkHttp; -import com.github.catvod.utils.Misc; +import com.github.catvod.utils.Utils; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; @@ -23,7 +23,7 @@ public class Hanime extends Spider { private HashMap getHeaders() { HashMap headers = new HashMap<>(); - headers.put("User-Agent", Misc.CHROME); + headers.put("User-Agent", Utils.CHROME); return headers; } 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 e23df195..d28d256e 100644 --- a/app/src/main/java/com/github/catvod/spider/Init.java +++ b/app/src/main/java/com/github/catvod/spider/Init.java @@ -12,9 +12,12 @@ import com.github.catvod.utils.Trans; import java.lang.reflect.Field; import java.util.Map; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; public class Init { + private final ExecutorService executor; private final Handler handler; private Application app; @@ -28,6 +31,7 @@ public class Init { public Init() { this.handler = new Handler(Looper.getMainLooper()); + this.executor = Executors.newFixedThreadPool(5); } public static Application context() { @@ -40,6 +44,10 @@ public class Init { Trans.init(); } + public static void execute(Runnable runnable) { + get().executor.execute(runnable); + } + public static void run(Runnable runnable) { get().handler.post(runnable); } diff --git a/app/src/main/java/com/github/catvod/spider/Jable.java b/app/src/main/java/com/github/catvod/spider/Jable.java index 7667f367..f26cd73f 100644 --- a/app/src/main/java/com/github/catvod/spider/Jable.java +++ b/app/src/main/java/com/github/catvod/spider/Jable.java @@ -5,7 +5,7 @@ import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; import com.github.catvod.net.OkHttp; -import com.github.catvod.utils.Misc; +import com.github.catvod.utils.Utils; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; @@ -26,7 +26,7 @@ public class Jable extends Spider { private HashMap getHeaders() { HashMap headers = new HashMap<>(); - headers.put("User-Agent", Misc.CHROME); + headers.put("User-Agent", Utils.CHROME); return headers; } @@ -79,7 +79,7 @@ public class Jable extends Spider { vod.setVodYear(year.replace("上市於 ", "")); vod.setVodName(name); vod.setVodPlayFrom("Jable"); - vod.setVodPlayUrl("播放$" + Misc.getVar(doc.html(), "hlsUrl")); + vod.setVodPlayUrl("播放$" + Utils.getVar(doc.html(), "hlsUrl")); return Result.string(vod); } diff --git a/app/src/main/java/com/github/catvod/spider/PanSou.java b/app/src/main/java/com/github/catvod/spider/PanSou.java index 834ab110..6d147114 100644 --- a/app/src/main/java/com/github/catvod/spider/PanSou.java +++ b/app/src/main/java/com/github/catvod/spider/PanSou.java @@ -6,7 +6,7 @@ import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; import com.github.catvod.net.OkHttp; -import com.github.catvod.utils.Misc; +import com.github.catvod.utils.Utils; import org.jsoup.Jsoup; import org.jsoup.nodes.Element; @@ -28,7 +28,7 @@ public class PanSou extends Spider { private Map getHeaders(String id) { HashMap headers = new HashMap<>(); - headers.put("User-Agent", Misc.CHROME); + headers.put("User-Agent", Utils.CHROME); headers.put("Referer", siteUrl + id); headers.put("_bid", "6d14a5dd6c07980d9dc089a693805ad8"); return headers; diff --git a/app/src/main/java/com/github/catvod/spider/Paper.java b/app/src/main/java/com/github/catvod/spider/Paper.java index 31df3375..8719738e 100644 --- a/app/src/main/java/com/github/catvod/spider/Paper.java +++ b/app/src/main/java/com/github/catvod/spider/Paper.java @@ -9,7 +9,7 @@ import com.github.catvod.bean.Vod; import com.github.catvod.bean.paper.Data; import com.github.catvod.crawler.Spider; import com.github.catvod.net.OkHttp; -import com.github.catvod.utils.Misc; +import com.github.catvod.utils.Utils; import org.json.JSONObject; import org.jsoup.Jsoup; @@ -35,7 +35,7 @@ public class Paper extends Spider { private HashMap getHeaders() { HashMap headers = new HashMap<>(); - headers.put("User-Agent", Misc.CHROME); + headers.put("User-Agent", Utils.CHROME); return headers; } diff --git a/app/src/main/java/com/github/catvod/spider/Push.java b/app/src/main/java/com/github/catvod/spider/Push.java index d38176cb..39663d69 100644 --- a/app/src/main/java/com/github/catvod/spider/Push.java +++ b/app/src/main/java/com/github/catvod/spider/Push.java @@ -5,7 +5,7 @@ import android.content.Context; import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; -import com.github.catvod.utils.Misc; +import com.github.catvod.utils.Utils; import java.util.List; @@ -20,8 +20,8 @@ public class Push extends Spider { public String detailContent(List ids) throws Exception { String url = ids.get(0).trim(); if (url.contains("aliyundrive")) return Ali.get().detailContent(ids); - if (Misc.isVip(url)) return Result.string(vod(url, "官源")); - if (Misc.isVideoFormat(url)) return Result.string(vod(url, "直連")); + if (Utils.isVip(url)) return Result.string(vod(url, "官源")); + if (Utils.isVideoFormat(url)) return Result.string(vod(url, "直連")); return Result.string(vod(url, "網頁")); } diff --git a/app/src/main/java/com/github/catvod/spider/Supjav.java b/app/src/main/java/com/github/catvod/spider/Supjav.java index 07994921..a6d25239 100644 --- a/app/src/main/java/com/github/catvod/spider/Supjav.java +++ b/app/src/main/java/com/github/catvod/spider/Supjav.java @@ -8,7 +8,7 @@ import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; import com.github.catvod.net.OkHttp; -import com.github.catvod.utils.Misc; +import com.github.catvod.utils.Utils; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; @@ -33,7 +33,7 @@ public class Supjav extends Spider { private HashMap getHeaders(String referer) { HashMap headers = new HashMap<>(); - headers.put("User-Agent", Misc.CHROME); + headers.put("User-Agent", Utils.CHROME); headers.put("Referer", referer); return headers; } @@ -149,7 +149,7 @@ public class Supjav extends Spider { private String parseTV(String redirect) { String data = OkHttp.string(redirect, getHeaders(playUrl)); - return Result.get().url(Misc.getVar(data, "urlPlay")).header(getHeaders(redirect)).string(); + return Result.get().url(Utils.getVar(data, "urlPlay")).header(getHeaders(redirect)).string(); } private String parseST(String redirect) { diff --git a/app/src/main/java/com/github/catvod/spider/UpYun.java b/app/src/main/java/com/github/catvod/spider/UpYun.java index f58f9071..c920912f 100644 --- a/app/src/main/java/com/github/catvod/spider/UpYun.java +++ b/app/src/main/java/com/github/catvod/spider/UpYun.java @@ -9,7 +9,7 @@ import com.github.catvod.bean.upyun.Data; import com.github.catvod.bean.upyun.Item; import com.github.catvod.crawler.Spider; import com.github.catvod.net.OkHttp; -import com.github.catvod.utils.Misc; +import com.github.catvod.utils.Utils; import java.net.URLEncoder; import java.util.ArrayList; @@ -25,7 +25,7 @@ public class UpYun extends Spider { private Map getHeaders() { HashMap headers = new HashMap<>(); - headers.put("User-Agent", Misc.CHROME); + headers.put("User-Agent", Utils.CHROME); headers.put("Referer", siteUrl); return headers; } 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 80b56d24..78dd0990 100644 --- a/app/src/main/java/com/github/catvod/spider/XPath.java +++ b/app/src/main/java/com/github/catvod/spider/XPath.java @@ -9,9 +9,9 @@ import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; import com.github.catvod.crawler.SpiderDebug; import com.github.catvod.net.OkHttp; -import com.github.catvod.utils.Misc; +import com.github.catvod.utils.Utils; import com.github.catvod.utils.Trans; -import com.github.catvod.xpath.XPathRule; +import com.github.catvod.bean.xpath.Rule; import org.json.JSONArray; import org.json.JSONException; @@ -27,21 +27,21 @@ import java.util.Set; public class XPath extends Spider { - protected XPathRule rule = null; + protected Rule rule = null; private HashMap getHeaders() { HashMap headers = new HashMap<>(); - headers.put("User-Agent", rule.getUa().isEmpty() ? Misc.CHROME : rule.getUa()); + headers.put("User-Agent", rule.getUa().isEmpty() ? Utils.CHROME : rule.getUa()); return headers; } private void fetchRule(String ext) { if (ext.startsWith("http")) { String json = OkHttp.string(ext); - rule = XPathRule.fromJson(json); + rule = Rule.fromJson(json); loadRuleExt(json); } else { - rule = XPathRule.fromJson(ext); + rule = Rule.fromJson(ext); loadRuleExt(ext); } } @@ -81,7 +81,7 @@ public class XPath extends Spider { id = rule.getHomeVodIdR(id); String pic = vodNodes.get(i).selOne(rule.getHomeVodImg()).asString().trim(); pic = rule.getHomeVodImgR(pic); - pic = Misc.fixUrl(webUrl, pic); + pic = Utils.fixUrl(webUrl, pic); String mark = ""; if (!rule.getHomeVodMark().isEmpty()) { try { @@ -114,7 +114,7 @@ public class XPath extends Spider { id = rule.getCateVodIdR(id); String pic = vodNodes.get(i).selOne(rule.getCateVodImg()).asString().trim(); pic = rule.getCateVodImgR(pic); - pic = Misc.fixUrl(webUrl, pic); + pic = Utils.fixUrl(webUrl, pic); String mark = ""; if (!rule.getCateVodMark().isEmpty()) { try { @@ -142,7 +142,7 @@ public class XPath extends Spider { try { cover = vodNode.selOne(rule.getDetailImg()).asString().trim(); cover = rule.getDetailImgR(cover); - cover = Misc.fixUrl(webUrl, cover); + cover = Utils.fixUrl(webUrl, cover); } catch (Exception e) { SpiderDebug.log(e); } @@ -285,7 +285,7 @@ public class XPath extends Spider { id = rule.getSearchVodIdR(id); String pic = vod.optString(rule.getSearchVodImg()).trim(); pic = rule.getSearchVodImgR(pic); - pic = Misc.fixUrl(webUrl, pic); + pic = Utils.fixUrl(webUrl, pic); String mark = vod.optString(rule.getSearchVodMark()).trim(); mark = rule.getSearchVodMarkR(mark); list.add(new Vod(id, name, pic, mark)); @@ -304,7 +304,7 @@ public class XPath extends Spider { id = rule.getSearchVodIdR(id); String pic = vodNodes.get(i).selOne(rule.getSearchVodImg()).asString().trim(); pic = rule.getSearchVodImgR(pic); - pic = Misc.fixUrl(webUrl, pic); + pic = Utils.fixUrl(webUrl, pic); String mark = ""; if (!rule.getCateVodMark().isEmpty()) { try { diff --git a/app/src/main/java/com/github/catvod/spider/XPathMac.java b/app/src/main/java/com/github/catvod/spider/XPathMac.java index 5d0f3759..610761ca 100644 --- a/app/src/main/java/com/github/catvod/spider/XPathMac.java +++ b/app/src/main/java/com/github/catvod/spider/XPathMac.java @@ -4,7 +4,7 @@ import android.text.TextUtils; import android.util.Base64; import com.github.catvod.crawler.SpiderDebug; -import com.github.catvod.utils.Misc; +import com.github.catvod.utils.Utils; import org.json.JSONException; import org.json.JSONObject; @@ -122,7 +122,7 @@ public class XPathMac extends XPath { } if (videoUrl != null) { // 適配2.0.6的調用應用內解析列表的支持, 需要配合直連分析和匹配官源解析一起使用,參考cjt影視和極品直連 - if (decodeVipFlag && Misc.isVip(videoUrl)) { // 使用jx:1 + if (decodeVipFlag && Utils.isVip(videoUrl)) { // 使用jx:1 try { JSONObject result = new JSONObject(); result.put("parse", 1); @@ -145,7 +145,7 @@ public class XPathMac extends XPath { } } // 如果是視頻直連 直接返回免解 - else if (Misc.isVideoFormat(videoUrl)) { + else if (Utils.isVideoFormat(videoUrl)) { try { JSONObject result = new JSONObject(); result.put("parse", 0); diff --git a/app/src/main/java/com/github/catvod/spider/YiSo.java b/app/src/main/java/com/github/catvod/spider/YiSo.java index 64ba8dd8..733c37cb 100644 --- a/app/src/main/java/com/github/catvod/spider/YiSo.java +++ b/app/src/main/java/com/github/catvod/spider/YiSo.java @@ -9,7 +9,7 @@ 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.github.catvod.utils.Utils; import com.google.gson.JsonParser; import java.net.URLEncoder; @@ -41,7 +41,7 @@ public class YiSo extends Spider { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) return ""; String url = "https://yiso.fun/api/search?name=4k " + URLEncoder.encode(key) + "&from=ali"; Map result = new HashMap<>(); - Misc.loadWebView(url, getWebViewClient(result)); + Utils.loadWebView(url, getWebViewClient(result)); while (!result.containsKey("json")) SystemClock.sleep(50); String json = JsonParser.parseString(Objects.requireNonNull(result.get("json"))).getAsJsonPrimitive().getAsString(); return Result.string(Item.objectFrom(json).getData().getList(key)); diff --git a/app/src/main/java/com/github/catvod/spider/Ying.java b/app/src/main/java/com/github/catvod/spider/Ying.java index db7205d4..b574a758 100644 --- a/app/src/main/java/com/github/catvod/spider/Ying.java +++ b/app/src/main/java/com/github/catvod/spider/Ying.java @@ -8,7 +8,7 @@ import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; import com.github.catvod.net.OkHttp; -import com.github.catvod.utils.Misc; +import com.github.catvod.utils.Utils; import com.github.catvod.utils.Trans; import org.jsoup.Jsoup; @@ -32,7 +32,7 @@ public class Ying extends Spider { private HashMap getHeaders() { HashMap headers = new HashMap<>(); - headers.put("User-Agent", Misc.CHROME); + headers.put("User-Agent", Utils.CHROME); return headers; } diff --git a/app/src/main/java/com/github/catvod/spider/Ysj.java b/app/src/main/java/com/github/catvod/spider/Ysj.java index e7088238..7bbcd7db 100644 --- a/app/src/main/java/com/github/catvod/spider/Ysj.java +++ b/app/src/main/java/com/github/catvod/spider/Ysj.java @@ -8,7 +8,7 @@ import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; import com.github.catvod.net.OkHttp; -import com.github.catvod.utils.Misc; +import com.github.catvod.utils.Utils; import com.github.catvod.utils.Trans; import org.jsoup.Jsoup; @@ -33,7 +33,7 @@ public class Ysj extends Spider { private HashMap getHeaders() { HashMap headers = new HashMap<>(); - headers.put("User-Agent", Misc.CHROME); + headers.put("User-Agent", Utils.CHROME); return headers; } diff --git a/app/src/main/java/com/github/catvod/spider/Zhaozy.java b/app/src/main/java/com/github/catvod/spider/Zhaozy.java index a937e730..81201eed 100644 --- a/app/src/main/java/com/github/catvod/spider/Zhaozy.java +++ b/app/src/main/java/com/github/catvod/spider/Zhaozy.java @@ -6,7 +6,7 @@ import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; import com.github.catvod.net.OkHttp; -import com.github.catvod.utils.Misc; +import com.github.catvod.utils.Utils; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; @@ -31,7 +31,7 @@ public class Zhaozy extends Spider { private Map getHeader() { Map headers = new HashMap<>(); - headers.put("User-Agent", Misc.CHROME); + headers.put("User-Agent", Utils.CHROME); headers.put("Referer", siteUrl); headers.put("Cookie", getCookie()); return headers; @@ -42,7 +42,7 @@ public class Zhaozy extends Spider { params.put("username", username); params.put("password", password); Map headers = new HashMap<>(); - headers.put("User-Agent", Misc.CHROME); + headers.put("User-Agent", Utils.CHROME); headers.put("Referer", siteUrl + "login.html"); headers.put("Origin", siteUrl); Map> resp = new HashMap<>(); diff --git a/app/src/main/java/com/github/catvod/utils/Json.java b/app/src/main/java/com/github/catvod/utils/Json.java deleted file mode 100644 index 4829c91a..00000000 --- a/app/src/main/java/com/github/catvod/utils/Json.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.github.catvod.utils; - -import com.google.gson.JsonParser; - -public class Json { - - public static String getString(String result, String column) { - return JsonParser.parseString(result).getAsJsonObject().get(column).getAsString(); - } - - public static int getInt(String result, String column) { - return JsonParser.parseString(result).getAsJsonObject().get(column).getAsInt(); - } - - public static long getLong(String result, String column) { - return JsonParser.parseString(result).getAsJsonObject().get(column).getAsLong(); - } - - public static boolean getBoolean(String result, String column) { - return JsonParser.parseString(result).getAsJsonObject().get(column).getAsBoolean(); - } -} \ No newline at end of file diff --git a/app/src/main/java/com/github/catvod/utils/QRCode.java b/app/src/main/java/com/github/catvod/utils/QRCode.java index 73a9e675..0e799f1c 100644 --- a/app/src/main/java/com/github/catvod/utils/QRCode.java +++ b/app/src/main/java/com/github/catvod/utils/QRCode.java @@ -35,7 +35,7 @@ public class QRCode { Map hints = new EnumMap<>(EncodeHintType.class); hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); hints.put(EncodeHintType.MARGIN, margin); - return createBitmap(new MultiFormatWriter().encode(contents, BarcodeFormat.QR_CODE, Misc.dp2px(size), Misc.dp2px(size), hints)); + return createBitmap(new MultiFormatWriter().encode(contents, BarcodeFormat.QR_CODE, Utils.dp2px(size), Utils.dp2px(size), hints)); } catch (Exception e) { e.printStackTrace(); return null; diff --git a/app/src/main/java/com/github/catvod/utils/Sniffer.java b/app/src/main/java/com/github/catvod/utils/Sniffer.java index c934b3c3..ab4ac1af 100644 --- a/app/src/main/java/com/github/catvod/utils/Sniffer.java +++ b/app/src/main/java/com/github/catvod/utils/Sniffer.java @@ -5,7 +5,8 @@ import java.util.regex.Pattern; public class Sniffer { public static final Pattern RULE = Pattern.compile( - "http((?!http).){12,}?\\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg|m4a)\\?.*|" + - "http((?!http).){12,}\\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg|m4a)" + "http((?!http).){12,}?\\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg|m4a|mp3)\\?.*|" + + "http((?!http).){12,}\\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg|m4a|mp3)|" + + "http((?!http).)*?video/tos*" ); } diff --git a/app/src/main/java/com/github/catvod/utils/Misc.java b/app/src/main/java/com/github/catvod/utils/Utils.java similarity index 96% rename from app/src/main/java/com/github/catvod/utils/Misc.java rename to app/src/main/java/com/github/catvod/utils/Utils.java index 90861591..ffb42a05 100644 --- a/app/src/main/java/com/github/catvod/utils/Misc.java +++ b/app/src/main/java/com/github/catvod/utils/Utils.java @@ -24,7 +24,9 @@ import java.util.Arrays; import java.util.List; import java.util.Locale; -public class Misc { +public class Utils { + + public static final String CHROME = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36"; public static final String CHROME = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"; public static Charset CharsetUTF8 = Charset.forName("UTF-8"); @@ -85,7 +87,7 @@ public class Misc { headers.put("User-Agent", "Mozilla/5.0"); } else if (input.contains("bilibili")) { headers.put("Referer", "https://www.bilibili.com/"); - headers.put("User-Agent", Misc.CHROME); + headers.put("User-Agent", CHROME); } return headers; } @@ -101,7 +103,7 @@ public class Misc { if (ua.trim().length() > 0) headers.put("User-Agent", ua); String referer = jsonPlayData.optString("referer", ""); if (referer.trim().length() > 0) headers.put("Referer", referer); - headers = Misc.fixJsonVodHeader(headers, input, url); + headers = Utils.fixJsonVodHeader(headers, input, url); JSONObject taskResult = new JSONObject(); taskResult.put("header", headers); taskResult.put("url", url); diff --git a/json/adult.json b/json/adult.json index 5202bafd..d2413d0d 100644 --- a/json/adult.json +++ b/json/adult.json @@ -1,5 +1,5 @@ { - "spider": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;e5b681f675bb3bde7f94196f60235829", + "spider": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;5f350e3b859432e66db59eebc3ccce78", "wallpaper": "https://gao.chuqiuyu.tk", "lives": [ { @@ -611,7 +611,7 @@ "searchable": 1, "filterable": 1, "switchable": 0, - "ext": "http://我不是.肥猫.love:63/token.php" + "ext": "https://agit.ai/Yoursmile7/TVBox/raw/branch/master/token.txt" } ] } \ No newline at end of file diff --git a/json/ali.json b/json/ali.json new file mode 100644 index 00000000..50a1e635 --- /dev/null +++ b/json/ali.json @@ -0,0 +1,70 @@ +{ + "sites": [ + { + "key": "紙條", + "name": "紙條", + "type": 3, + "api": "csp_Paper", + "searchable": 1, + "filterable": 1, + "switchable": 0, + "ext": "https://agit.ai/Yoursmile7/TVBox/raw/branch/master/token.txt", + "jar": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;5f350e3b859432e66db59eebc3ccce78" + }, + { + "key": "易搜", + "name": "易搜", + "type": 3, + "api": "csp_YiSo", + "searchable": 1, + "filterable": 0, + "switchable": 0, + "ext": "https://agit.ai/Yoursmile7/TVBox/raw/branch/master/token.txt", + "jar": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;5f350e3b859432e66db59eebc3ccce78" + }, + { + "key": "盤搜", + "name": "盤搜", + "type": 3, + "api": "csp_PanSou", + "searchable": 1, + "filterable": 0, + "switchable": 0, + "ext": "https://agit.ai/Yoursmile7/TVBox/raw/branch/master/token.txt", + "jar": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;5f350e3b859432e66db59eebc3ccce78" + }, + { + "key": "UP雲搜", + "name": "UP雲搜", + "type": 3, + "api": "csp_UpYun", + "searchable": 1, + "filterable": 0, + "switchable": 0, + "ext": "https://agit.ai/Yoursmile7/TVBox/raw/branch/master/token.txt", + "jar": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;5f350e3b859432e66db59eebc3ccce78" + }, + { + "key": "找資源", + "name": "找資源", + "type": 3, + "api": "csp_Zhaozy", + "searchable": 1, + "filterable": 0, + "switchable": 0, + "ext": "https://agit.ai/Yoursmile7/TVBox/raw/branch/master/token.txt$$$yingshi$$$abcd1234", + "jar": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;5f350e3b859432e66db59eebc3ccce78" + }, + { + "key": "push_agent", + "name": "推送", + "type": 3, + "api": "csp_Push", + "searchable": 1, + "filterable": 0, + "switchable": 0, + "ext": "https://agit.ai/Yoursmile7/TVBox/raw/branch/master/token.txt", + "jar": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;5f350e3b859432e66db59eebc3ccce78" + } + ] +} \ No newline at end of file diff --git a/json/config.json b/json/config.json index 90e1f999..ce860b16 100644 --- a/json/config.json +++ b/json/config.json @@ -1,5 +1,5 @@ { - "spider": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;e5b681f675bb3bde7f94196f60235829", + "spider": "https://gh-proxy.com/https://raw.githubusercontent.com/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;5f350e3b859432e66db59eebc3ccce78", "wallpaper": "http://www.kf666888.cn/api/tvbox/img", "lives": [ { @@ -125,7 +125,7 @@ "searchable": 1, "filterable": 1, "switchable": 0, - "ext": "http://我不是.肥猫.love:63/token.php" + "ext": "https://agit.ai/Yoursmile7/TVBox/raw/branch/master/token.txt" }, { "key": "易搜", @@ -135,7 +135,7 @@ "searchable": 1, "filterable": 0, "switchable": 0, - "ext": "http://我不是.肥猫.love:63/token.php" + "ext": "https://agit.ai/Yoursmile7/TVBox/raw/branch/master/token.txt" }, { "key": "盤搜", @@ -145,7 +145,7 @@ "searchable": 1, "filterable": 0, "switchable": 0, - "ext": "http://我不是.肥猫.love:63/token.php" + "ext": "https://agit.ai/Yoursmile7/TVBox/raw/branch/master/token.txt" }, { "key": "UP雲搜", @@ -155,7 +155,7 @@ "searchable": 1, "filterable": 0, "switchable": 0, - "ext": "http://我不是.肥猫.love:63/token.php" + "ext": "https://agit.ai/Yoursmile7/TVBox/raw/branch/master/token.txt" }, { "key": "找資源", @@ -165,7 +165,7 @@ "searchable": 1, "filterable": 0, "switchable": 0, - "ext": "http://我不是.肥猫.love:63/token.php$$$yingshi$$$abcd1234" + "ext": "https://agit.ai/Yoursmile7/TVBox/raw/branch/master/token.txt$$$yingshi$$$abcd1234" }, { "key": "Live", @@ -185,7 +185,7 @@ "searchable": 1, "filterable": 0, "switchable": 0, - "ext": "http://我不是.肥猫.love:63/token.php" + "ext": "https://agit.ai/Yoursmile7/TVBox/raw/branch/master/token.txt" } ] } \ No newline at end of file