diff --git a/app/src/main/java/com/github/catvod/api/QuarkApi.java b/app/src/main/java/com/github/catvod/api/QuarkApi.java index 28f630c5..be038aae 100644 --- a/app/src/main/java/com/github/catvod/api/QuarkApi.java +++ b/app/src/main/java/com/github/catvod/api/QuarkApi.java @@ -23,10 +23,14 @@ import com.github.catvod.crawler.SpiderDebug; import com.github.catvod.net.OkHttp; import com.github.catvod.net.OkResult; import com.github.catvod.spider.Init; +import com.github.catvod.spider.Proxy; import com.github.catvod.utils.*; +import com.google.gson.Gson; import org.apache.commons.lang3.StringUtils; +import java.io.ByteArrayInputStream; import java.io.File; +import java.nio.charset.Charset; import java.util.*; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; @@ -52,6 +56,15 @@ public class QuarkApi { private AlertDialog dialog; private String serviceTicket; + public Object[] proxyVideo(Map params) throws Exception { + String url = Util.base64Decode(params.get("url")); + Map header = new Gson().fromJson(Util.base64Decode(params.get("header")), Map.class); + if (header == null) header = new HashMap<>(); + List keys = Arrays.asList("referer", "icy-metadata", "range", "connection", "accept-encoding", "user-agent"); + for (String key : params.keySet()) if (keys.contains(key)) header.put(key, params.get(key)); + return ProxyVideo.proxy(url, header); + } + private static class Loader { static volatile QuarkApi INSTANCE = new QuarkApi(); } @@ -78,7 +91,7 @@ public class QuarkApi { Map headers = new HashMap<>(); headers.put("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) quark-cloud-drive/2.5.20 Chrome/100.0.4896.160 Electron/18.3.5.4-b478491100 Safari/537.36 Channel/pckk_other_ch"); headers.put("Referer", "https://pan.quark.cn/"); - headers.put("Cookie", cookie); + headers.put("Cookie", cookie); return headers; } @@ -147,9 +160,12 @@ public class QuarkApi { Map header = getHeaders(); header.remove("Host"); header.remove("Content-Type"); - return Result.get().url(ProxyVideo.buildCommonProxyUrl(playUrl, header)).octet().header(header).string(); + return Result.get().url(proxyVideoUrl(playUrl, header)).octet().header(header).string(); } + private String proxyVideoUrl(String url, Map header) { + return String.format(Proxy.getUrl() + "?do=quark&type=video&url=%s&header=%s", Util.base64Encode(url.getBytes(Charset.defaultCharset())), Util.base64Encode(Json.toJson(header).getBytes(Charset.defaultCharset()))); + } /** * @param url @@ -174,7 +190,15 @@ public class QuarkApi { } else { okResult = OkHttp.post(this.apiUrl + url, Json.toJson(data), getHeaders()); } - + if (okResult.getResp().get("Set-Cookie") != null) { + Matcher matcher = Pattern.compile("__puus=([^;]+)").matcher(StringUtils.join(okResult.getResp().get("Set-Cookie"), ";;;")); + if (matcher.find()) { + Matcher cookieMatcher = Pattern.compile("__puus=([^;]+)").matcher(this.cookie); + if (cookieMatcher.find() && !cookieMatcher.group(1).equals(matcher.group(1))) { + this.cookie = this.cookie.replaceAll("__puus=[^;]+", "__puus=" + matcher.group(1)); + } + } + } if (okResult.getCode() != 200 && leftRetry > 0) { Thread.sleep(1000); @@ -186,8 +210,8 @@ public class QuarkApi { private boolean refreshAccessToken() { try { SpiderDebug.log("refreshCookie..."); - cookie=cache.getUser().getCookie(); - if (cookie.isEmpty()&&serviceTicket.isBlank()) { + cookie = cache.getUser().getCookie(); + if (cookie.isEmpty() && serviceTicket.isBlank()) { SpiderDebug.log("cookie为空"); throw new RuntimeException("cookie为空"); } @@ -239,9 +263,9 @@ public class QuarkApi { } this.cookie = TextUtils.join(";", cookieList); } - Map json = Json.parseSafe(res.getBody(), Map.class); + Map json = Json.parseSafe(res.getBody(), Map.class); if (Objects.equals(json.get("message"), "ok")) { - return (String) (( Map)(( Map)json.get("data")).get("members")).get("token"); + return (String) ((Map) ((Map) json.get("data")).get("members")).get("token"); } return ""; } @@ -302,12 +326,12 @@ public class QuarkApi { } } - private List< Map> listFile(int shareIndex, ShareData shareData, List videos, List subtitles, String shareId, String folderId, Integer page) throws Exception { + private List> listFile(int shareIndex, ShareData shareData, List videos, List subtitles, String shareId, String folderId, Integer page) throws Exception { int prePage = 200; page = page != null ? page : 1; - Map listData = Json.parseSafe(api("share/sharepage/detail?" + this.pr + "&pwd_id=" + shareId + "&stoken=" + encodeURIComponent((String) this.shareTokenCache.get(shareId).get("stoken")) + "&pdir_fid=" + folderId + "&force=0&_page=" + page + "&_size=" + prePage + "&_sort=file_type:asc,file_name:asc", Collections.emptyMap(), Collections.emptyMap(), 0, "GET"), Map.class); - if (listData.get("data")== null) return Collections.emptyList(); + Map listData = Json.parseSafe(api("share/sharepage/detail?" + this.pr + "&pwd_id=" + shareId + "&stoken=" + encodeURIComponent((String) this.shareTokenCache.get(shareId).get("stoken")) + "&pdir_fid=" + folderId + "&force=0&_page=" + page + "&_size=" + prePage + "&_sort=file_type:asc,file_name:asc", Collections.emptyMap(), Collections.emptyMap(), 0, "GET"), Map.class); + if (listData.get("data") == null) return Collections.emptyList(); List> items = (List>) ((Map) listData.get("data")).get("list"); if (items == null) return Collections.emptyList(); List> subDir = new ArrayList<>(); @@ -581,14 +605,14 @@ public class QuarkApi { }; timer.schedule(task, 1000, 2000);*/ - service.scheduleWithFixedDelay(() -> { - SpiderDebug.log("----scheduleAtFixedRate"+new Date().toString()); - String result = OkHttp.string("https://uop.quark.cn/cas/ajax/getServiceTicketByQrcodeToken", params, getWebHeaders()); - Map json = Json.parseSafe(result, Map.class); - if (json.get("status").equals(new Double(2000000))) { - setToken((String) ((Map)((Map)json.get("data")).get("members")).get("service_ticket")); + service.scheduleWithFixedDelay(() -> { + SpiderDebug.log("----scheduleAtFixedRate" + new Date().toString()); + String result = OkHttp.string("https://uop.quark.cn/cas/ajax/getServiceTicketByQrcodeToken", params, getWebHeaders()); + Map json = Json.parseSafe(result, Map.class); + if (json.get("status").equals(new Double(2000000))) { + setToken((String) ((Map) ((Map) json.get("data")).get("members")).get("service_ticket")); - } + } }, 1, 3, TimeUnit.SECONDS); } diff --git a/app/src/main/java/com/github/catvod/spider/Proxy.java b/app/src/main/java/com/github/catvod/spider/Proxy.java index 868b1f71..a049aabd 100644 --- a/app/src/main/java/com/github/catvod/spider/Proxy.java +++ b/app/src/main/java/com/github/catvod/spider/Proxy.java @@ -26,6 +26,8 @@ public class Proxy extends Spider { return new Object[]{200, "text/plain; charset=utf-8", new ByteArrayInputStream("ok".getBytes("UTF-8"))}; case "ali": return Ali.proxy(params); + case "quark": + return Quark.proxy(params); case "bili": return Bili.proxy(params); case "webdav": @@ -53,6 +55,7 @@ public class Proxy extends Spider { return ProxyVideo.proxy(url, header); } + static void adjustPort() { if (Proxy.port > 0) return; int port = 9978; diff --git a/app/src/main/java/com/github/catvod/spider/Quark.java b/app/src/main/java/com/github/catvod/spider/Quark.java index ba444942..8af90fdf 100644 --- a/app/src/main/java/com/github/catvod/spider/Quark.java +++ b/app/src/main/java/com/github/catvod/spider/Quark.java @@ -2,6 +2,7 @@ package com.github.catvod.spider; import android.content.Context; import android.text.TextUtils; +import com.github.catvod.api.AliYun; import com.github.catvod.api.QuarkApi; import com.github.catvod.bean.Result; import com.github.catvod.bean.quark.ShareData; @@ -10,6 +11,7 @@ import com.github.catvod.crawler.Spider; import java.util.ArrayList; import java.util.List; import java.util.Locale; +import java.util.Map; /** * @author ColaMint & Adam & FongMi @@ -73,4 +75,10 @@ public class Quark extends Spider { return TextUtils.join("$$$", playUrl); } + public static Object[] proxy(Map params) throws Exception { + String type = params.get("type"); + if ("video".equals(type)) return QuarkApi.get().proxyVideo(params); + //if ("sub".equals(type)) return AliYun.get().proxySub(params); + return null; + } } diff --git a/app/src/test/java/ProxyTest.java b/app/src/test/java/ProxyTest.java index 54d8c4f1..2b70ed4f 100644 --- a/app/src/test/java/ProxyTest.java +++ b/app/src/test/java/ProxyTest.java @@ -28,11 +28,13 @@ public class ProxyTest { public void homeContent() throws Exception { - // OkResult result = OkHttp.get("http://127.0.0.1:9978/proxy?do=proxy&url=aHR0cHM6Ly92aWRlby1wbGF5LWMtemIuZHJpdmUucXVhcmsuY24vRHc0aEVCZ0wvODU3OTQ5NzA5MC82NmM5NWUyYTMzMDA1MDMzZTUzYTQ5YTg4MmQ5YTdhOTlkNTRhZDcwLzY2Yzk1ZTJhOWM5MmVhYjRjNDI3NGI3NDkwMmZlMDBiYWJkMDI5Mzk/YXV0aF9rZXk9MTcyNDk5NjI1NS0xNDgwMzEtMTA4MDAtMDYzMDQ5MDY2NTFlMDU4MDE2ZDY0NjA5ZmU4ODY5YzUmc3A9MTkxJnRva2VuPTMtNDEwOTA1M2JjMjMzM2E3NmM3NjM0YjgzZmE3YzRlMWMtOC0yLTI4Ni0yNjllM2Y2YzFiZWM0ZDliOGZlNDZjZmM3MzQzNzkyNi0wLTAtMC0wLWQ4ZWQ2ODVlMTNmMzViYWQ5MWM1YzFjODdiNGU0MGUwJnVkPTE2LTQtMS0yLTEtMy03LU4tMS0xNi0yLU4=&header=eyJDb29raWUiOiJiLXVzZXItaWRcdTAwM2Q4OWVkZTM0ZS0wZWZjLWUxZGQtYzk5Ny1mMTZhYWE3OTJkMGM7IF9VUF9BNEFfMTFfXHUwMDNkd2I5NjYxYzZkZmI2NDJmODhmNzNkOGUwYzdlZGQzOTg7IGItdXNlci1pZFx1MDAzZDg5ZWRlMzRlLTBlZmMtZTFkZC1jOTk3LWYxNmFhYTc5MmQwYzsgY3Rva2VuXHUwMDNkd2xhNnAzRVVPTHluMUZTQjhJS3AxU0VXOyBncmV5LWlkXHUwMDNkNTU4M2UzMmItMzlkZi00YmYwLWYzOWYtMWFkZjgzZjYwNGEyOyBncmV5LWlkLnNpZ1x1MDAzZHA4UmVCSU1HMkJlWnUxc1l2c3VPQVp4WWJ4LU1WcnNmS0VpQ3Y4N01zVE07IGlzUXVhcmtcdTAwM2R0cnVlOyBpc1F1YXJrLnNpZ1x1MDAzZGhVZ3FPYnlrcUZvbTVZMDlibGw5NFQxc1M5YWJUMVgtNERmX2x6Z2w4bk07IF9VUF9GN0VfOERfXHUwMDNkWmt5dlZIbnJCTHAxQTFORkpJaldpMFB3S0xPVmJ4SlBjZzBSelFQSTZLbUJ0VjZaTWdQaDM4bDkzcGd1YmdIRFFxaGFaMlNmYzBxdiUyQlJhbnRiZmcxbVdHQVVwUk1QNFJxWFA3OFd2dSUyRkNmdmtXV0djNU5oQ1RWNzF0R09JR2dEQlIzJTJCdTYlMkZqajQ0S2xFNWJpU05ET1dXN0JpZ2N6Mjdsdk9UaWR6Tnc4cyUyRld0S0FJeFdibkN6Wm40JTJGSk1CVXViMVNJTWNXODlnNTdrNG1mUG1EbENncFpLenh3bDZiZVNmZHRaNFJVV1htWk9uNXY1Tmt4VktoVTR3UjBQcTdOa2xjekVHZFJxMm5JQWN1N3YyMlV3Mm8lMkZ4TVkweEJkZUM5S29ybTUlMkZOSG54bDZLJTJCZDZGWFNvVDlhM1hJTVFPMzU5YXVaUGlaV3pyTmxaZSUyQnFuT2FoWGN4N0tBaFFJUnFTT2FwU21MNHlnSm9yNHI1aXNKaFJ1RG9YeTd2SkFWdUglMkZSRHRFSko4clpUcTBCZEMyM0J6JTJCME1yc2RnYkslMkJpVzsgX1VQX0RfXHUwMDNkcGM7IF9fd3BrcmVwb3J0ZXJ3aWRfXHUwMDNkM2QzZjc0YTctOTliNy00OTE2LTNmNzgtOTExZmMyZWI5ZDg3OyB0ZnN0a1x1MDAzZGZJb1pOeGpuYmhLd1BPdTBUV1o0THNhUnFpclRjdWRTU21OYm54RDBDNVZnQ2xNbTh4TXlCLUdzblN1NHRqcE9mbEFPbVNELTlQTmlHbDEyMFhyZ2tWTmIxU3JxSGJKQk4zdFNCQUVZb1FPV1ZVVWc5cVo4bjFiR0drRDNDcUdZSU5LU0JBQmhqblhncDNfVnl3ejZnU2MwU3lqM0JXZjBtcjJETFcyNGVaZmlpb3ZFS1dlZmoxcTBzd3EzRTgyaU5FTWluTXk3U0xyY3BBNEZoM3pfWkFWaUNmaWgzUGJ0ZFc1Tl9EdVU3N0FhVGlqbVlSa0wyV3E1NEVOb3k1YTdaWHhDYm9rMzNYelM3UVNaZ3hELW95b1ZzZEdvdHFsMHAyZFZ1N3VtQzRuTFN0YmlMbVBhcmM0RkVMSHJJLWMwdTJkUFZScnM4em9aV0tDbkliTlpybEhmVUNNVXoyejhLeVhWU2xnU0ZtVW9qaDU4T3plcVR6Z3dhR2xsNFlDWUt3Y3REVjVjb1AyTEw3OWVLSHhwTlRYSG1yZTFrWlUzMkpQV0NSX0FrUDJMTDc5ZUxaUVktV2VVTmR3MS47IF9fcHVzXHUwMDNkMjA1MWM4MjI4NTE5OWQ4YmU1NTNiZTQxZGQ1YTIxMDBBQVErbW12MzVHNEZERFo1eCszTWhlMk9NYk5nd2VRMU9EYlc4ekR0OVl1UDFMUVZxSFV1QUF6OUtXTHNQanBOdGltMEFWR0h1c040TUNvc1RtYnEva2hNOyBfX2twXHUwMDNkZTY2MDQxMjAtNjA1MS0xMWVmLWJmZTQtYzMxYjZjZGQwNzY2OyBfX2twc1x1MDAzZEFBVGNaQXJWZ1M3NkVQbjBGTWFWNEhFajsgX19rdGRcdTAwM2RzaWkvaXo0ZVB6RWFvVmlyWHVsN1FRXHUwMDNkXHUwMDNkOyBfX3VpZFx1MDAzZEFBVGNaQXJWZ1M3NkVQbjBGTWFWNEhFajsgX19pdHJhY2Vfd2lkXHUwMDNkNTgyOWI5NWQtZGFjMS00OGQzLWJmZDUtZjYwY2Q5NDYyNzg2OyBfX3B1dXNcdTAwM2RjMGZkYWYwYmQ2MjAwY2EyMmI1OWVlOTllMTlkODdkOEFBVHAvcTgvUXVwVDdJaUJSMUdXcVpoeElxVDdlYzRCeDRSWmVGZ3FVZEhyNFNoTUthYlZVNlByZFdscENZYlkxOHdqekVpbThYNDNNNmNhUVVzL0Y0OU5FRlJDdWlVMDI1VkgrUitzUGw3bGJiUlVCV0pCL21FcFpmc3JMYTdPUGpoSUdhUXg4Z1FMNUlXdW1mUTUwY3FYbW1ISmIwMyt0aTAyZEM0dmR2REFNbUhQYU8yQlIyOHlRUE8rcnIvaUFiQ1RFVEtlYWRtaWNYVm9nUEZYdmpvZyIsIlVzZXItQWdlbnQiOiJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBxdWFyay1jbG91ZC1kcml2ZS8yLjUuMjAgQ2hyb21lLzEwMC4wLjQ4OTYuMTYwIEVsZWN0cm9uLzE4LjMuNS40LWI0Nzg0OTExMDAgU2FmYXJpLzUzNy4zNiBDaGFubmVsL3Bja2tfb3RoZXJfY2giLCJSZWZlcmVyIjoiaHR0cHM6Ly9wYW4ucXVhcmsuY24vIn0=", null, null); + // OkResult result = OkHttp.get("http://127.0.0.1:9978/proxy?do=quark&type=video&url=aHR0cHM6Ly92aWRlby1wbGF5LWgtemIuZHJpdmUucXVhcmsuY24vcXYvMTgzMkExMjlFMTBFMkM1ODdDMjY1RThBRkY4NkU0OENCNDk5NUZERl8xNTE1ODQ0MDZfX3NoYTFfc3ozXzliZTVkNzU4L2RiNGFhMDhiYjAwN2RmYWYvbWVkaWEubTN1OD9hdXRoX2tleT0xNzI2MTk5OTkyLTQ1OTk4LTEwODAwLWI1ODI4MWNlYzRkZDkzZWMwNjY4YzRkMTVhNmEzNjk4JnNwPTU1JnRva2VuPTItOC0yLTEwMC01NS0yNjllXzkyNTRkMmIzMTc3ZThlMTNhYzAxMDk3MGNlZjI0MWVmLTM1MTgxN2Y4MzNkMTBmOTliMmIxYjdhNzYxMmIxNmJiLWUwZjdkZjAyZmZkZGUyN2YwNjU3ZjJjNDc5ZTA4NjY3JnVkPTE2LTAtMS0yLTEtMC03LU4tMS0xNi0wLU4mbXQ9Mw==&header=eyJDb29raWUiOiJfVVBfQTRBXzExX1x1MDAzZHdiOTY4MWZiYWVkNjQ1NGE4MTEyZjMxZTUzYjVjMGJlOyBfX3B1c1x1MDAzZDQ1YmVlZmE5M2U4Nzc1YzkyMTE0ODdkMGM4ZGRkMmIxQUFTQ21WNVM3TFkwZGZYOTBOM3A0d1UvRzRmL29TMGdaSzZjcHhaTVppRHRYdDlzN0tpU3MzdFZaT1huSURlbDY5QzlLYVE2MUlRbG5MWUgyclM0TkdqTzsgX19rcFx1MDAzZGZlNjYzYTkwLTY4ZDUtMTFlZi04YjIzLWU3N2IwZWFhMzUyYzsgX19rcHNcdTAwM2RBQVQzMkZvYit2cTY2em5PNVVIU0hBUGk7IF9fa3RkXHUwMDNkMzlvWEUrQlQ1M1lsRmdVZkZWcTlrd1x1MDAzZFx1MDAzZDsgX191aWRcdTAwM2RBQVQzMkZvYit2cTY2em5PNVVIU0hBUGk7IF9fcHV1c1x1MDAzZGU5YmRlODQ1NDA4ZTkzYWYxNDY2OTgzZTZiN2JiNzdlQUFTVjFhS0pLTFJYR2p2SFJmd1FKNWd1bTh5OGk5Q0xEZy8xa1l0c1h3YURrbHJNRE9wQ2ZYVkV4SDdlWDRRTnVWRzFTdUhTVDBadFpheGJ0dTUwbDRzcVV6bVBLVkFNTUpFR3MrOUxoYUs3N0Exb1I2RUt4RjBLVTN4RHRacVh1ekxxMUY2clRwNGM2RnhDQUk4OFBuMmNBeWZqUlVLWGdXYTByYXl4cWEwNXhwTWI4ajJUb3pPcDMyRDU3clkxVmxNWjVjSWV5MDdTQmtVS2hFdTN3V0NiIiwiVXNlci1BZ2VudCI6Ik1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIHF1YXJrLWNsb3VkLWRyaXZlLzIuNS4yMCBDaHJvbWUvMTAwLjAuNDg5Ni4xNjAgRWxlY3Ryb24vMTguMy41LjQtYjQ3ODQ5MTEwMCBTYWZhcmkvNTM3LjM2IENoYW5uZWwvcGNra19vdGhlcl9jaCIsIlJlZmVyZXIiOiJodHRwczovL3Bhbi5xdWFyay5jbi8ifQ==", null, null); //System.out.println(result); while (true) { + // System.out.println("server is running ...."); continue; + } } diff --git a/app/src/test/java/QuarkTest.java b/app/src/test/java/QuarkTest.java index 36ef90ba..8bac3025 100644 --- a/app/src/test/java/QuarkTest.java +++ b/app/src/test/java/QuarkTest.java @@ -1,4 +1,5 @@ import android.app.Application; +import com.github.catvod.server.Server; import com.github.catvod.spider.Init; import com.github.catvod.spider.Quark; import com.github.catvod.spider.Wogg; @@ -28,7 +29,7 @@ public class QuarkTest { spider = new Quark(); // spider.init(mockContext, "b-user-id=89ede34e-0efc-e1dd-c997-f16aaa792d0c; _UP_A4A_11_=wb9661c6dfb642f88f73d8e0c7edd398; b-user-id=89ede34e-0efc-e1dd-c997-f16aaa792d0c; ctoken=wla6p3EUOLyn1FSB8IKp1SEW; grey-id=5583e32b-39df-4bf0-f39f-1adf83f604a2; grey-id.sig=p8ReBIMG2BeZu1sYvsuOAZxYbx-MVrsfKEiCv87MsTM; isQuark=true; isQuark.sig=hUgqObykqFom5Y09bll94T1sS9abT1X-4Df_lzgl8nM; _UP_F7E_8D_=ZkyvVHnrBLp1A1NFJIjWi0PwKLOVbxJPcg0RzQPI6KmBtV6ZMgPh38l93pgubgHDQqhaZ2Sfc0qv%2BRantbfg1mWGAUpRMP4RqXP78Wvu%2FCfvkWWGc5NhCTV71tGOIGgDBR3%2Bu6%2Fjj44KlE5biSNDOWW7Bigcz27lvOTidzNw8s%2FWtKAIxWbnCzZn4%2FJMBUub1SIMcW89g57k4mfPmDlCgpZKzxwl6beSfdtZ4RUWXmZOn5v5NkxVKhU4wR0Pq7NklczEGdRq2nIAcu7v22Uw2o%2FxMY0xBdeC9Korm5%2FNHnxl6K%2Bd6FXSoT9a3XIMQO359auZPiZWzrNlZe%2BqnOahXcx7KAhQIRqSOapSmL4ygJor4r5isJhRuDoXy7vJAVuH%2FRDtEJJ8rZTq0BdC23Bz%2B0MrsdgbK%2BiW; _UP_D_=pc; __wpkreporterwid_=3d3f74a7-99b7-4916-3f78-911fc2eb9d87; tfstk=fIoZNxjnbhKwPOu0TWZ4LsaRqirTcudSSmNbnxD0C5VgClMm8xMyB-GsnSu4tjpOflAOmSD-9PNiGl120XrgkVNb1SrqHbJBN3tSBAEYoQOWVUUg9qZ8n1bGGkD3CqGYINKSBABhjnXgp3_Vywz6gSc0Syj3BWf0mr2DLW24eZfiiovEKWefj1q0swq3E82iNEMinMy7SLrcpA4Fh3z_ZAViCfih3PbtdW5N_DuU77AaTijmYRkL2Wq54ENoy5a7ZXxCbok33XzS7QSZgxD-oyoVsdGotql0p2dVu7umC4nLStbiLmParc4FELHrI-c0u2dPVRrs8zoZWKCnIbNZrlHfUCMUz2z8KyXVSlgSFmUojh58OzeqTzgwaGll4YCYKwctDV5coP2LL79eKHxpNTXHmre1kZU32JPWCR_AkP2LL79eLZQY-WeUNdw1.; __pus=2051c82285199d8be553be41dd5a2100AAQ+mmv35G4FDDZ5x+3Mhe2OMbNgweQ1ODbW8zDt9YuP1LQVqHUuAAz9KWLsPjpNtim0AVGHusN4MCosTmbq/khM; __kp=e6604120-6051-11ef-bfe4-c31b6cdd0766; __kps=AATcZArVgS76EPn0FMaV4HEj; __ktd=sii/iz4ePzEaoVirXul7QQ==; __uid=AATcZArVgS76EPn0FMaV4HEj; __itrace_wid=5829b95d-dac1-48d3-bfd5-f60cd9462786; __puus=7da0b96cb710fa1b376934485f977e05AATp/q8/QupT7IiBR1GWqZhxlIRT677smMvoHlLxQA0Lk6CkP0YJBOTl+p9DZgzlMz6w4hPXPgWsokukk8PW7ZfhFfPmv8tKMgLpCGLW+tk57luhNghmSdTeVPkAF59STtyCPBEtiNzNAd/zZJ6qILJDi5ywEBAAAg+gOyWHoLHNUR+QxeHRuQa8g5WWA95J8jebIlrr8rCvI1vjTbtiYktT"); spider.init(mockContext, "_UP_A4A_11_=wb9681fbaed6454a8112f31e53b5c0be; __pus=45beefa93e8775c9211487d0c8ddd2b1AASCmV5S7LY0dfX90N3p4wU/G4f/oS0gZK6cpxZMZiDtXt9s7KiSs3tVZOXnIDel69C9KaQ61IQlnLYH2rS4NGjO; __kp=fe663a90-68d5-11ef-8b23-e77b0eaa352c; __kps=AAT32Fob+vq66znO5UHSHAPi; __ktd=39oXE+BT53YlFgUfFVq9kw==; __uid=AAT32Fob+vq66znO5UHSHAPi; __puus=e9bde845408e93af1466983e6b7bb77eAASV1aKJKLRXGjvHRfwQJ5gum8y8i9CLDg/1kYtsXwaDklrMDOpCfXVExH7eX4QNuVG1SuHST0ZtZaxbtu50l4sqUzmPKVAMMJEGs+9LhaK77A1oR6EKxF0KU3xDtZqXuzLq1F6rTp4c6FxCAI88Pn2cAyfjRUKXgWa0rayxqa05xpMb8j2TozOp32D57rY1VlMZ5cIey07SBkUKhEu3wWCb"); - + Server.get().start(); } @org.junit.Test @@ -51,7 +52,7 @@ public class QuarkTest { @org.junit.Test public void playerContent() throws Exception { - String content = spider.playerContent("普画","41ea9a50cbdd4e50b019bcd78687ebc1++92ead436dc1646265220b5b7e69ae76b++38c5e16d71f7++3uHtNwBmnz4E16wVXMC2iWZymZhbFqSpsSgokuehUT0=",new ArrayList<>()); + String content = spider.playerContent("普画","41ea9a50cbdd4e50b019bcd78687ebc1++3c38f4a8b87188d81633c55aef00747a++38c5e16d71f7++ReE6ClCfgTBsiAAzpjRF2pYcFyLTDPIqiGt/PvBsJcw=",new ArrayList<>()); System.out.println("playerContent--" + content); JsonObject map = Json.safeObject(content); Gson gson = new GsonBuilder().setPrettyPrinting().create(); diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index 34eaa0ed..8a48fb83 100644 Binary files a/jar/custom_spider.jar and b/jar/custom_spider.jar differ diff --git a/jar/custom_spider.jar.md5 b/jar/custom_spider.jar.md5 index c91f0b5f..cb0d60fd 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -315da0e838557cf626527cb29e8dbb17 +07c518ab9e85fa73e318af38b8486a93 diff --git a/json/index.json b/json/index.json index 7de5ec86..52e63485 100644 --- a/json/index.json +++ b/json/index.json @@ -1,5 +1,5 @@ { - "spider": "https://androidcatvodspider.pages.dev/jar/custom_spider.jar;md5;315da0e838557cf626527cb29e8dbb17", + "spider": "https://androidcatvodspider.pages.dev/jar/custom_spider.jar;md5;07c518ab9e85fa73e318af38b8486a93", "lives": [ { "name": "直播ipv6", diff --git a/json/index1.json b/json/index1.json index ee2dfa04..09739dfa 100644 --- a/json/index1.json +++ b/json/index1.json @@ -1,5 +1,5 @@ { - "spider": "https://androidcatvodspider.pages.dev/jar/custom_spider.jar;md5;315da0e838557cf626527cb29e8dbb17", + "spider": "https://androidcatvodspider.pages.dev/jar/custom_spider.jar;md5;07c518ab9e85fa73e318af38b8486a93", "lives": [ { "name": "直播ipv6", diff --git a/json/index2.json b/json/index2.json index 02301611..1934a42b 100644 --- a/json/index2.json +++ b/json/index2.json @@ -1,5 +1,5 @@ { - "spider": "https://androidcatvodspider.pages.dev/jar/custom_spider.jar;md5;315da0e838557cf626527cb29e8dbb17", + "spider": "https://androidcatvodspider.pages.dev/jar/custom_spider.jar;md5;07c518ab9e85fa73e318af38b8486a93", "lives": [ { "name": "直播ipv6",