quark 播放列表bug

This commit is contained in:
lushunming 2024-09-19 10:17:09 +08:00
parent cf7f548a2b
commit 9177a5f211
8 changed files with 21 additions and 17 deletions

View File

@ -50,7 +50,7 @@ public class QuarkApi {
private boolean isVip = false; private boolean isVip = false;
private final Cache cache; private final Cache cache;
private ScheduledExecutorService service; private ScheduledExecutorService service;
private Timer timer;
private AlertDialog dialog; private AlertDialog dialog;
private String serviceTicket; private String serviceTicket;
@ -59,7 +59,7 @@ public class QuarkApi {
String url = Util.base64Decode(params.get("url")); String url = Util.base64Decode(params.get("url"));
Map header = new Gson().fromJson(Util.base64Decode(params.get("header")), Map.class); Map header = new Gson().fromJson(Util.base64Decode(params.get("header")), Map.class);
if (header == null) header = new HashMap<>(); if (header == null) header = new HashMap<>();
List<String> arr = List.of("Range","Accept", "Accept-Encoding", "Accept-Language", "Cookie", "Origin", "Referer", "Sec-Ch-Ua", "Sec-Ch-Ua-Mobile", "Sec-Ch-Ua-Platform", "Sec-Fetch-Dest", "Sec-Fetch-Mode", "Sec-Fetch-Site", "User-Agent"); List<String> arr = List.of("Range", "Accept", "Accept-Encoding", "Accept-Language", "Cookie", "Origin", "Referer", "Sec-Ch-Ua", "Sec-Ch-Ua-Mobile", "Sec-Ch-Ua-Platform", "Sec-Fetch-Dest", "Sec-Fetch-Mode", "Sec-Fetch-Site", "User-Agent");
for (String key : params.keySet()) { for (String key : params.keySet()) {
for (String s : arr) { for (String s : arr) {
if (s.toLowerCase().equals(key)) { if (s.toLowerCase().equals(key)) {
@ -115,10 +115,10 @@ public class QuarkApi {
return QuarkApi.Loader.INSTANCE; return QuarkApi.Loader.INSTANCE;
} }
public void setRefreshToken(String token) throws Exception { public void setCookie(String token) throws Exception {
if (StringUtils.isNoneBlank(token)) { if (StringUtils.isNoneBlank(token)) {
this.cookie = token; this.cookie = token;
refreshAccessToken(); initUserInfo();
} }
} }
@ -226,7 +226,7 @@ public class QuarkApi {
int leftRetry = retry != null ? retry : 3; int leftRetry = retry != null ? retry : 3;
if (StringUtils.isAllBlank(cookie)) { if (StringUtils.isAllBlank(cookie)) {
this.refreshAccessToken(); this.initUserInfo();
return api(url, params, data, leftRetry - 1, method); return api(url, params, data, leftRetry - 1, method);
} }
OkResult okResult; OkResult okResult;
@ -255,18 +255,24 @@ public class QuarkApi {
return okResult.getBody(); return okResult.getBody();
} }
private void refreshAccessToken() { private void initUserInfo() {
try { try {
SpiderDebug.log("refreshCookie..."); SpiderDebug.log("initUserInfo...");
//extend没有cookie从缓存中获取
if (StringUtils.isAllBlank(cookie)) { if (StringUtils.isAllBlank(cookie)) {
SpiderDebug.log(" cookie from ext is empty...");
cookie = cache.getUser().getCookie(); cookie = cache.getUser().getCookie();
} }
//获取到cookie初始化quark并且把cookie缓存一次
if (StringUtils.isNoneBlank(cookie)) { if (StringUtils.isNoneBlank(cookie)) {
SpiderDebug.log(" initQuark ...");
initQuark(this.cookie); initQuark(this.cookie);
cache.setUser(User.objectFrom(this.cookie)); cache.setUser(User.objectFrom(this.cookie));
return; return;
} }
//没有cookie也没有serviceTicket抛出异常提示用户重新登录
if (StringUtils.isAllBlank(cookie) && StringUtils.isAllBlank(serviceTicket)) { if (StringUtils.isAllBlank(cookie) && StringUtils.isAllBlank(serviceTicket)) {
SpiderDebug.log("cookie为空"); SpiderDebug.log("cookie为空");
throw new RuntimeException("cookie为空"); throw new RuntimeException("cookie为空");
@ -675,13 +681,13 @@ public class QuarkApi {
this.serviceTicket = value; this.serviceTicket = value;
SpiderDebug.log("ServiceTicket:" + value); SpiderDebug.log("ServiceTicket:" + value);
Notify.show("ServiceTicket:" + value); Notify.show("ServiceTicket:" + value);
refreshAccessToken(); initUserInfo();
stopService(); stopService();
} }
private void stopService() { private void stopService() {
if (service != null) service.shutdownNow(); if (service != null) service.shutdownNow();
if (timer != null) timer.cancel();
Init.run(this::dismiss); Init.run(this::dismiss);
} }

View File

@ -2,7 +2,6 @@ package com.github.catvod.spider;
import android.content.Context; import android.content.Context;
import android.text.TextUtils; import android.text.TextUtils;
import com.github.catvod.api.AliYun;
import com.github.catvod.api.QuarkApi; import com.github.catvod.api.QuarkApi;
import com.github.catvod.bean.Result; import com.github.catvod.bean.Result;
import com.github.catvod.bean.quark.ShareData; import com.github.catvod.bean.quark.ShareData;
@ -22,7 +21,7 @@ public class Quark extends Spider {
@Override @Override
public void init(Context context, String extend) throws Exception { public void init(Context context, String extend) throws Exception {
QuarkApi.get().setRefreshToken(extend); QuarkApi.get().setCookie(extend);
} }
@Override @Override

View File

@ -104,8 +104,8 @@ public class Wogg extends Cloud {
shareLinks.set(i, shareLinks.get(i).trim()); shareLinks.set(i, shareLinks.get(i).trim());
//String detailContent = super.detailContent(List.of(shareLinks.get(i))); //String detailContent = super.detailContent(List.of(shareLinks.get(i)));
} }
item.setVodPlayFrom(super.detailContentVodPlayFrom(shareLinks));
item.setVodPlayUrl(super.detailContentVodPlayUrl(shareLinks)); item.setVodPlayUrl(super.detailContentVodPlayUrl(shareLinks));
item.setVodPlayFrom(super.detailContentVodPlayFrom(shareLinks));
Elements elements = doc.select(".video-info-item"); Elements elements = doc.select(".video-info-item");
for (Element e : elements) { for (Element e : elements) {
@ -137,7 +137,6 @@ public class Wogg extends Cloud {
} }
private String searchContent(String key, String pg) { private String searchContent(String key, String pg) {
String searchURL = siteUrl + String.format("/index.php/vodsearch/%s----------%s---.html", URLEncoder.encode(key), pg); String searchURL = siteUrl + String.format("/index.php/vodsearch/%s----------%s---.html", URLEncoder.encode(key), pg);
String html = OkHttp.string(searchURL, getHeader()); String html = OkHttp.string(searchURL, getHeader());

Binary file not shown.

View File

@ -1 +1 @@
3a90fb07969b2c03758ecf46939d8b46 2e49412e2661e5328d9407c41b84893b

View File

@ -1,5 +1,5 @@
{ {
"spider": "https://androidcatvodspider.pages.dev/jar/custom_spider.jar;md5;3a90fb07969b2c03758ecf46939d8b46", "spider": "https://androidcatvodspider.pages.dev/jar/custom_spider.jar;md5;2e49412e2661e5328d9407c41b84893b",
"lives": [ "lives": [
{ {
"name": "直播ipv6", "name": "直播ipv6",

View File

@ -1,5 +1,5 @@
{ {
"spider": "https://androidcatvodspider.pages.dev/jar/custom_spider.jar;md5;3a90fb07969b2c03758ecf46939d8b46", "spider": "https://androidcatvodspider.pages.dev/jar/custom_spider.jar;md5;2e49412e2661e5328d9407c41b84893b",
"lives": [ "lives": [
{ {
"name": "直播ipv6", "name": "直播ipv6",

View File

@ -1,5 +1,5 @@
{ {
"spider": "https://androidcatvodspider.pages.dev/jar/custom_spider.jar;md5;3a90fb07969b2c03758ecf46939d8b46", "spider": "https://androidcatvodspider.pages.dev/jar/custom_spider.jar;md5;2e49412e2661e5328d9407c41b84893b",
"lives": [ "lives": [
{ {
"name": "直播ipv6", "name": "直播ipv6",