diff --git a/app/src/main/java/com/github/catvod/crawler/Spider.java b/app/src/main/java/com/github/catvod/crawler/Spider.java index ba8378a8..1d43cad8 100644 --- a/app/src/main/java/com/github/catvod/crawler/Spider.java +++ b/app/src/main/java/com/github/catvod/crawler/Spider.java @@ -2,8 +2,6 @@ package com.github.catvod.crawler; import android.content.Context; -import com.github.catvod.net.OkHttp; - import java.util.HashMap; import java.util.List; import java.util.Map; @@ -64,10 +62,10 @@ public abstract class Spider { } public static Dns safeDns() { - return Dns.SYSTEM; + return null; } - public OkHttpClient client() { - return OkHttp.client(); + public static OkHttpClient client() { + return null; } } diff --git a/app/src/main/java/com/github/catvod/debug/MainActivity.java b/app/src/main/java/com/github/catvod/debug/MainActivity.java index 5c295803..25d01238 100644 --- a/app/src/main/java/com/github/catvod/debug/MainActivity.java +++ b/app/src/main/java/com/github/catvod/debug/MainActivity.java @@ -6,8 +6,8 @@ import android.widget.Button; import com.github.catvod.R; import com.github.catvod.crawler.Spider; -import com.github.catvod.spider.Eighteen; import com.github.catvod.spider.Init; +import com.github.catvod.spider.Wogg; import com.orhanobut.logger.AndroidLogAdapter; import com.orhanobut.logger.Logger; @@ -46,7 +46,7 @@ public class MainActivity extends Activity { private void initSpider() { try { Init.init(getApplicationContext()); - spider = new Eighteen(); + spider = new Wogg(); spider.init(this, ""); } catch (Throwable e) { e.printStackTrace(); diff --git a/app/src/main/java/com/github/catvod/net/OkHttp.java b/app/src/main/java/com/github/catvod/net/OkHttp.java index 9dc86512..2e278438 100644 --- a/app/src/main/java/com/github/catvod/net/OkHttp.java +++ b/app/src/main/java/com/github/catvod/net/OkHttp.java @@ -5,6 +5,7 @@ import com.github.catvod.crawler.Spider; import java.io.IOException; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.concurrent.TimeUnit; import okhttp3.Dns; @@ -24,21 +25,12 @@ public class OkHttp { static volatile OkHttp INSTANCE = new OkHttp(); } - public static OkHttp get() { + private static OkHttp get() { return Loader.INSTANCE; } - public static Dns dns() { - return Spider.safeDns(); - } - - public static OkHttpClient client() { - if (get().client != null) return get().client; - return get().client = getBuilder().build(); - } - - public static OkHttpClient noRedirect() { - return client().newBuilder().followRedirects(false).followSslRedirects(false).build(); + public static Response newCall(Request request) throws IOException { + return client().newCall(request).execute(); } public static Response newCall(String url) throws IOException { @@ -54,27 +46,19 @@ public class OkHttp { } public static String string(String url, Map header) { - return string(client(), url, null, header); + return string(url, null, header); } - public static String string(OkHttpClient client, String url, Map header) { - return string(client, url, null, header); - } - - public static String string(OkHttpClient client, String url, Map params, Map header) { - return url.startsWith("http") ? new OkRequest(GET, url, params, header).execute(client).getBody() : ""; + public static String string(String url, Map params, Map header) { + return url.startsWith("http") ? new OkRequest(GET, url, params, header).execute(client()).getBody() : ""; } public static String post(String url, Map params) { - return post(client(), url, params, null).getBody(); + return post(url, params, null).getBody(); } public static OkResult post(String url, Map params, Map header) { - return post(client(), url, params, header); - } - - public static OkResult post(OkHttpClient client, String url, Map params, Map header) { - return new OkRequest(POST, url, params, header).execute(client); + return new OkRequest(POST, url, params, header).execute(client()); } public static String post(String url, String json) { @@ -82,15 +66,11 @@ public class OkHttp { } public static OkResult post(String url, String json, Map header) { - return post(client(), url, json, header); - } - - public static OkResult post(OkHttpClient client, String url, String json, Map header) { - return new OkRequest(POST, url, json, header).execute(client); + return new OkRequest(POST, url, json, header).execute(client()); } public static String getLocation(String url, Map header) throws IOException { - return getLocation(noRedirect().newCall(new Request.Builder().url(url).headers(Headers.of(header)).build()).execute().headers().toMultimap()); + return getLocation(client().newBuilder().followRedirects(false).followSslRedirects(false).build().newCall(new Request.Builder().url(url).headers(Headers.of(header)).build()).execute().headers().toMultimap()); } public static String getLocation(Map> headers) { @@ -100,7 +80,28 @@ public class OkHttp { return null; } - public static OkHttpClient.Builder getBuilder() { - return new OkHttpClient.Builder().dns(dns()).connectTimeout(30, TimeUnit.SECONDS).readTimeout(30, TimeUnit.SECONDS).writeTimeout(30, TimeUnit.SECONDS).hostnameVerifier((hostname, session) -> true).sslSocketFactory(new SSLCompat(), SSLCompat.TM); + private static OkHttpClient build() { + if (get().client != null) return get().client; + return get().client = getBuilder().build(); + } + + private static OkHttpClient.Builder getBuilder() { + return new OkHttpClient.Builder().dns(safeDns()).connectTimeout(30, TimeUnit.SECONDS).readTimeout(30, TimeUnit.SECONDS).writeTimeout(30, TimeUnit.SECONDS).hostnameVerifier((hostname, session) -> true).sslSocketFactory(new SSLCompat(), SSLCompat.TM); + } + + private static OkHttpClient client() { + try { + return Objects.requireNonNull(Spider.client()); + } catch (Throwable e) { + return build(); + } + } + + private static Dns safeDns() { + try { + return Objects.requireNonNull(Spider.safeDns()); + } catch (Throwable e) { + return Dns.SYSTEM; + } } } 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 77f8a287..004add5c 100644 --- a/app/src/main/java/com/github/catvod/net/OkRequest.java +++ b/app/src/main/java/com/github/catvod/net/OkRequest.java @@ -22,17 +22,16 @@ class OkRequest { private final String json; private Request request; private String url; - private Object tag; OkRequest(String method, String url, Map params, Map header) { - this(method, url, null, params, header); + this(method, url, params, null, header); } OkRequest(String method, String url, String json, Map header) { - this(method, url, json, null, header); + this(method, url, null, json, header); } - private OkRequest(String method, String url, String json, Map params, Map header) { + private OkRequest(String method, String url, Map params, String json, Map header) { this.url = url; this.json = json; this.method = method; @@ -41,17 +40,11 @@ class OkRequest { getInstance(); } - public OkRequest tag(Object tag) { - this.tag = tag; - return this; - } - private void getInstance() { Request.Builder builder = new Request.Builder(); if (method.equals(OkHttp.GET) && params != null) setParams(); if (method.equals(OkHttp.POST)) builder.post(getRequestBody()); if (header != null) for (String key : header.keySet()) builder.addHeader(key, header.get(key)); - if (tag != null) builder.tag(tag); request = builder.url(url).build(); } diff --git a/app/src/main/java/com/github/catvod/spider/Bili.java b/app/src/main/java/com/github/catvod/spider/Bili.java index c4c0e023..7c890eca 100644 --- a/app/src/main/java/com/github/catvod/spider/Bili.java +++ b/app/src/main/java/com/github/catvod/spider/Bili.java @@ -1,6 +1,5 @@ package com.github.catvod.spider; -import android.app.AlertDialog; import android.content.Context; import android.text.TextUtils; @@ -32,7 +31,6 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; import java.util.Map; -import java.util.concurrent.ScheduledExecutorService; /** * @author ColaMint & FongMi & 唐三 @@ -43,8 +41,6 @@ public class Bili extends Spider { private static Map audios; private static String cookie; - private ScheduledExecutorService service; - private AlertDialog dialog; private JsonObject extend; private boolean login; private boolean isVip; @@ -53,8 +49,8 @@ public class Bili extends Spider { private static Map getHeader() { Map headers = new HashMap<>(); headers.put("User-Agent", Util.CHROME); - if (cookie != null) headers.put("cookie", cookie); headers.put("Referer", "https://www.bilibili.com"); + if (cookie != null) headers.put("cookie", cookie); return headers; } @@ -280,88 +276,5 @@ public class Bili extends Spider { login = data.isLogin(); isVip = data.isVip(); wbi = data.getWbi(); - //getQRCode(); } - - /* - private void getQRCode() { - if (login) return; - String json = OkHttp.string("https://passport.bilibili.com/x/passport-login/web/qrcode/generate?source=main-mini"); - Data data = Resp.objectFrom(json).getData(); - Init.run(() -> openApp(data)); - } - - private Intent getIntent(String pkgName, Data data) { - Intent intent = new Intent(Intent.ACTION_VIEW); - intent.setClassName(pkgName, "tv.danmaku.bili.ui.intent.IntentHandlerActivity"); - intent.setData(Uri.parse(data.getUrl())); - return intent; - } - - private void openApp(Data data) { - try { - Init.getActivity().startActivity(getIntent("com.bilibili.app.in", data)); - } catch (Exception e) { - showQRCode(data); - } finally { - Init.execute(() -> startService(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.getUrl(), 240, 2)); - FrameLayout frame = new FrameLayout(Init.context()); - params.gravity = Gravity.CENTER; - frame.addView(image, params); - dialog = new AlertDialog.Builder(Init.getActivity()).setView(frame).setOnCancelListener(this::cancel).setOnDismissListener(this::dismiss).show(); - dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); - Utils.notify("請使用 BiliBili App 掃描二維碼"); - } catch (Exception ignored) { - } - } - - private void startService(Data data) { - service = Executors.newScheduledThreadPool(1); - service.scheduleAtFixedRate(() -> { - String url = "https://passport.bilibili.com/x/passport-login/web/qrcode/poll?qrcode_key=" + data.getQrcodeKey() + "&source=main_mini"; - String json = OkHttp.string(url, getHeader()); - url = Resp.objectFrom(json).getData().getUrl(); - if (url.length() > 0) setCookie(url); - }, 1, 1, TimeUnit.SECONDS); - } - - private void stopService() { - if (service != null) service.shutdownNow(); - Init.run(this::dismiss); - } - - private void setCookie(String url) { - StringBuilder sb = new StringBuilder(); - String[] splits = Uri.parse(url).getQuery().split("&"); - for (String split : splits) sb.append(split).append(";"); - FileUtil.write(getUserCache(), cookie = sb.toString()); - Utils.notify("請重新進入播放頁"); - stopService(); - } - - private void cancel(DialogInterface dialog) { - FileUtil.write(getUserCache(), cookie = ""); - stopService(); - } - - private void dismiss(DialogInterface dialog) { - stopService(); - } - - private void dismiss() { - try { - if (dialog != null) dialog.dismiss(); - } catch (Exception ignored) { - } - } - */ } 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 01f6ab76..6219495a 100644 --- a/app/src/main/java/com/github/catvod/spider/Eighteen.java +++ b/app/src/main/java/com/github/catvod/spider/Eighteen.java @@ -15,37 +15,21 @@ import org.jsoup.nodes.Element; import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import java.util.Map; public class Eighteen extends Spider { private final String url = "https://mjv002.com/zh/"; - private String cookie; - - private void getCookie() { - try { - cookie = OkHttp.newCall("https://mjv002.com/zh/chinese_IamOverEighteenYearsOld/19/index.html").headers("set-cookie").get(0).split(";")[0]; - } catch (Exception e) { - e.printStackTrace(); - } - } - - private Map getHeader() { - Map header = new HashMap<>(); - header.put("Cookie", cookie); - return header; - } @Override public void init(Context context, String extend) throws Exception { - getCookie(); + OkHttp.newCall("https://mjv002.com/zh/chinese_IamOverEighteenYearsOld/19/index.html").close(); } @Override public String homeContent(boolean filter) throws Exception { List classes = new ArrayList<>(); List list = new ArrayList<>(); - Document doc = Jsoup.parse(OkHttp.string(url, getHeader())); + Document doc = Jsoup.parse(OkHttp.string(url)); for (Element a : doc.select("ul.animenu__nav > li > a")) { String typeName = a.text(); String typeId = a.attr("href").replace(url, ""); @@ -68,7 +52,7 @@ public class Eighteen extends Spider { List list = new ArrayList<>(); tid = tid.replace("random", "list"); tid = tid.replace("index", pg); - Document doc = Jsoup.parse(OkHttp.string(url + tid, getHeader())); + Document doc = Jsoup.parse(OkHttp.string(url + tid)); for (Element div : doc.select("div.post")) { String id = div.select("a").attr("href").replace(url, ""); String name = div.select("h3").text(); @@ -81,7 +65,7 @@ public class Eighteen extends Spider { @Override public String detailContent(List ids) throws Exception { - Document doc = Jsoup.parse(OkHttp.string(url + ids.get(0), getHeader())); + Document doc = Jsoup.parse(OkHttp.string(url + ids.get(0))); Element wrap = doc.select("div.video-wrap").get(0); String name = wrap.select("div.archive-title > h1").text(); String pic = wrap.select("div.player-wrap > img").attr("src"); @@ -106,7 +90,7 @@ public class Eighteen extends Spider { @Override public String playerContent(String flag, String id, List vipFlags) throws Exception { - return Result.get().parse().url(url + id).header(getHeader()).string(); + return Result.get().parse().url(url + id).string(); } private String searchContent(String key, String pg) { @@ -114,7 +98,7 @@ public class Eighteen extends Spider { params.put("search_keyword", key); params.put("search_type", "fc"); params.put("op", "search"); - String res = OkHttp.post(url + "searchform_search/all/" + pg + ".html", params, getHeader()).getBody(); + String res = OkHttp.post(url + "searchform_search/all/" + pg + ".html", params); List list = new ArrayList<>(); for (Element div : Jsoup.parse(res).select("div.post")) { String id = div.select("a").attr("href").replace(url, ""); diff --git a/app/src/main/java/com/github/catvod/spider/NiNi.java b/app/src/main/java/com/github/catvod/spider/NiNi.java index e535f895..6c636ad0 100644 --- a/app/src/main/java/com/github/catvod/spider/NiNi.java +++ b/app/src/main/java/com/github/catvod/spider/NiNi.java @@ -30,8 +30,6 @@ import javax.crypto.Cipher; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; -import okhttp3.OkHttpClient; - public class NiNi extends Spider { private static final String desktopUrl = "https://api.nivodz.com/index/desktop/WEB/3.4"; @@ -62,15 +60,6 @@ public class NiNi extends Spider { if (extend.get(key) == null || extend.get(key).equals("")) extend.put(key, value); } - @Override - public OkHttpClient client() { - try { - return super.client(); - } catch (Throwable e) { - return OkHttp.client(); - } - } - @Override public void init(Context context, String extend) { adult = !TextUtils.isEmpty(extend); @@ -290,11 +279,11 @@ public class NiNi extends Spider { } private String get(String url) { - return decode(OkHttp.string(client(), genUrl(url, new HashMap<>()), getHeaders())); + return decode(OkHttp.string(genUrl(url, new HashMap<>()), getHeaders())); } private String post(String url, Map params) { - return decode(OkHttp.post(client(), genUrl(url, params), params, getHeaders()).getBody()); + return decode(OkHttp.post(genUrl(url, params), params, getHeaders()).getBody()); } @SuppressLint("GetInstance") diff --git a/app/src/main/java/com/github/catvod/spider/Star.java b/app/src/main/java/com/github/catvod/spider/Star.java index 4cb6e8de..576ed242 100644 --- a/app/src/main/java/com/github/catvod/spider/Star.java +++ b/app/src/main/java/com/github/catvod/spider/Star.java @@ -29,8 +29,6 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import okhttp3.OkHttpClient; - public class Star extends Spider { private static final String apiUrl = "https://aws.ulivetv.net/v3/web/api/filter"; @@ -43,25 +41,15 @@ public class Star extends Spider { private Map getHeader() { Map headers = new HashMap<>(); headers.put("User-Agent", Util.CHROME); - headers.put("Cookie", "userIP=64.252.112.99;"); headers.put("Referer", siteUrl); return headers; } private String getVer() { - for (Element script : Jsoup.parse(OkHttp.string(client(), siteUrl, getHeader())).select("script")) if (script.attr("src").contains("buildManifest.js")) return script.attr("src").split("/")[3]; + for (Element script : Jsoup.parse(OkHttp.string(siteUrl, getHeader())).select("script")) if (script.attr("src").contains("buildManifest.js")) return script.attr("src").split("/")[3]; return ""; } - @Override - public OkHttpClient client() { - try { - return super.client(); - } catch (Throwable e) { - return OkHttp.client(); - } - } - @Override public void init(Context context, String extend) { map = new LinkedHashMap<>(); @@ -78,7 +66,7 @@ public class Star extends Spider { LinkedHashMap> filters = new LinkedHashMap<>(); for (Map.Entry entry : map.entrySet()) classes.add(new Class(entry.getKey(), entry.getValue())); for (Class type : classes) { - Element script = Jsoup.parse(OkHttp.string(client(), siteUrl + type.getTypeId() + "/all/all/all", getHeader())).select("#__NEXT_DATA__").get(0); + Element script = Jsoup.parse(OkHttp.string(siteUrl + type.getTypeId() + "/all/all/all", getHeader())).select("#__NEXT_DATA__").get(0); JSONObject obj = new JSONObject(script.data()).getJSONObject("props").getJSONObject("pageProps").getJSONObject("filterCondition"); Condition item = Condition.objectFrom(obj.toString()); filters.put(type.getTypeId(), item.getFilter()); @@ -89,7 +77,7 @@ public class Star extends Spider { @Override public String homeVideoContent() throws Exception { List list = new ArrayList<>(); - Element script = Jsoup.parse(OkHttp.string(client(), siteUrl, getHeader())).select("#__NEXT_DATA__").get(0); + Element script = Jsoup.parse(OkHttp.string(siteUrl, getHeader())).select("#__NEXT_DATA__").get(0); List cards = Card.arrayFrom(new JSONObject(script.data()).getJSONObject("props").getJSONObject("pageProps").getJSONArray("cards").toString()); for (Card card : cards) if (!card.getName().equals("电视直播")) for (Card item : card.getCards()) list.add(item.vod()); return Result.string(list); @@ -117,7 +105,7 @@ public class Star extends Spider { @Override public String detailContent(List ids) throws Exception { - Element script = Jsoup.parse(OkHttp.string(client(), detail.concat(ids.get(0)), getHeader())).select("#__NEXT_DATA__").get(0); + Element script = Jsoup.parse(OkHttp.string(detail.concat(ids.get(0)), getHeader())).select("#__NEXT_DATA__").get(0); Info detail = Info.objectFrom(new JSONObject(script.data()).getJSONObject("props").getJSONObject("pageProps").getJSONObject("collectionInfo").toString()); Vod vod = new Vod(); vod.setVodId(ids.get(0)); @@ -145,7 +133,7 @@ public class Star extends Spider { @Override public String searchContent(String key, boolean quick) throws Exception { List list = new ArrayList<>(); - String json = OkHttp.string(client(), siteUrl + data + ver + "/search.json?word=" + URLEncoder.encode(key), getHeader()); + String json = OkHttp.string(siteUrl + data + ver + "/search.json?word=" + URLEncoder.encode(key), getHeader()); List items = Card.arrayFrom(new JSONObject(json).getJSONObject("pageProps").getJSONArray("initList").toString()); for (Card item : items) list.add(item.vod()); return Result.get().vod(list).page().string(); diff --git a/app/src/main/java/com/github/catvod/spider/Wogg.java b/app/src/main/java/com/github/catvod/spider/Wogg.java index 5f41d0bf..0932190d 100644 --- a/app/src/main/java/com/github/catvod/spider/Wogg.java +++ b/app/src/main/java/com/github/catvod/spider/Wogg.java @@ -28,12 +28,10 @@ import java.util.regex.Pattern; */ public class Wogg extends Ali { - private final String siteUrl = "http://tvfan.xxooo.cf"; + private final String siteUrl = "https://tvfan.xxooo.cf"; private final Pattern regexCategory = Pattern.compile("/vodtype/(\\w+).html"); private final Pattern regexPageTotal = Pattern.compile("\\$\\(\"\\.mac_total\"\\)\\.text\\('(\\d+)'\\);"); - private JsonObject ext; - private Map getHeader() { Map header = new HashMap<>(); header.put("User-Agent", Util.CHROME); @@ -42,15 +40,14 @@ public class Wogg extends Ali { @Override public void init(Context context, String extend) { - ext = Json.safeObject(extend); + JsonObject ext = Json.safeObject(extend); super.init(context, ext.has("token") ? ext.get("token").getAsString() : ""); } @Override public String homeContent(boolean filter) { List classes = new ArrayList<>(); - String url = ext.has("filter") ? ext.get("filter").getAsString() : ""; - Document doc = Jsoup.parse(OkHttp.string(client(), siteUrl, getHeader())); + Document doc = Jsoup.parse(OkHttp.string(siteUrl, getHeader())); Elements elements = doc.select(".nav-link"); for (Element e : elements) { Matcher mather = regexCategory.matcher(e.attr("href")); @@ -58,7 +55,7 @@ public class Wogg extends Ali { classes.add(new Class(mather.group(1), e.text().trim())); } } - return Result.string(classes, parseVodListFromDoc(doc), url.isEmpty() ? null : Json.parse(OkHttp.string(url))); + return Result.string(classes, parseVodListFromDoc(doc)); } @Override @@ -69,7 +66,7 @@ public class Wogg extends Ali { urlParams[Integer.parseInt(key)] = extend.get(key); } } - Document doc = Jsoup.parse(OkHttp.string(client(), String.format("%s/index.php/vodshow/%s.html", siteUrl, String.join("-", urlParams)), getHeader())); + Document doc = Jsoup.parse(OkHttp.string(String.format("%s/index.php/vodshow/%s.html", siteUrl, String.join("-", urlParams)), getHeader())); int page = Integer.parseInt(pg), limit = 72, total = 0; Matcher matcher = regexPageTotal.matcher(doc.html()); if (matcher.find()) total = Integer.parseInt(matcher.group(1)); @@ -93,7 +90,7 @@ public class Wogg extends Ali { @Override public String detailContent(List ids) throws Exception { String vodId = ids.get(0); - Document doc = Jsoup.parse(OkHttp.string(client(), siteUrl + vodId, getHeader())); + Document doc = Jsoup.parse(OkHttp.string(siteUrl + vodId, getHeader())); Vod item = new Vod(); item.setVodId(vodId); @@ -139,7 +136,7 @@ public class Wogg extends Ali { private String searchContent(String key, String pg) { String searchURL = siteUrl + String.format("/index.php/vodsearch/%s----------%s---.html", URLEncoder.encode(key), pg); - String html = OkHttp.string(client(), searchURL, getHeader()); + String html = OkHttp.string(searchURL, getHeader()); Elements items = Jsoup.parse(html).select(".module-search-item"); List list = new ArrayList<>(); for (Element item : items) { 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 e1826ef3..e843b1ab 100644 --- a/app/src/main/java/com/github/catvod/spider/XPath.java +++ b/app/src/main/java/com/github/catvod/spider/XPath.java @@ -324,7 +324,7 @@ public class XPath extends Spider { if (rule == null) { if (ext != null) { if (ext.startsWith("http")) { - String json = OkHttp.string(client(), ext, null); + String json = OkHttp.string(ext, null); rule = Rule.fromJson(json); loadRuleExt(json); } else { @@ -340,6 +340,6 @@ public class XPath extends Spider { protected String fetch(String webUrl) { SpiderDebug.log(webUrl); - return OkHttp.string(client(), webUrl, getHeaders()); + return OkHttp.string(webUrl, getHeaders()); } } \ No newline at end of file diff --git a/app/src/main/java/com/github/catvod/spider/Xb6v.java b/app/src/main/java/com/github/catvod/spider/Xb6v.java index 45bf3c34..f57c82ca 100644 --- a/app/src/main/java/com/github/catvod/spider/Xb6v.java +++ b/app/src/main/java/com/github/catvod/spider/Xb6v.java @@ -225,7 +225,7 @@ public class Xb6v extends Spider { .addHeader("Referer", siteUrl + "/") .post(formBody) .build(); - Response response = OkHttp.client().newCall(request).execute(); + Response response = OkHttp.newCall(request); String[] split = String.valueOf(response.request().url()).split("\\?searchid="); nextSearchUrlPrefix = split[0] + "index.php?page="; nextSearchUrlSuffix = "&searchid=" + split[1]; 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 6a78b553..c0fb0f24 100644 --- a/app/src/main/java/com/github/catvod/spider/Zhaozy.java +++ b/app/src/main/java/com/github/catvod/spider/Zhaozy.java @@ -32,11 +32,10 @@ public class Zhaozy extends Ali { Map headers = new HashMap<>(); headers.put("User-Agent", Util.CHROME); headers.put("Referer", siteUrl); - headers.put("Cookie", getCookie()); return headers; } - private String getCookie() { + private void getCookie() { Map params = new HashMap<>(); params.put("username", username); params.put("password", password); @@ -44,10 +43,7 @@ public class Zhaozy extends Ali { headers.put("User-Agent", Util.CHROME); headers.put("Referer", siteUrl + "stop.html"); headers.put("Origin", siteUrl); - StringBuilder sb = new StringBuilder(); - Map> resp = OkHttp.post(siteUrl + "logiu.html", params, headers).getResp(); - for (String item : resp.get("set-cookie")) sb.append(item.split(";")[0]).append(";"); - return sb.toString(); + OkHttp.post(siteUrl + "logiu.html", params, headers); } @Override @@ -56,6 +52,7 @@ public class Zhaozy extends Ali { super.init(context, split[0]); username = split[1]; password = split[2]; + getCookie(); } @Override diff --git a/app/src/main/java/com/github/catvod/utils/Util.java b/app/src/main/java/com/github/catvod/utils/Util.java index 0b886b41..80b4add8 100644 --- a/app/src/main/java/com/github/catvod/utils/Util.java +++ b/app/src/main/java/com/github/catvod/utils/Util.java @@ -27,7 +27,7 @@ public class Util { public static final Pattern RULE = Pattern.compile("http((?!http).){12,}?\\.(m3u8|mp4|mkv|flv|mp3|m4a|aac)\\?.*|http((?!http).){12,}\\.(m3u8|mp4|mkv|flv|mp3|m4a|aac)|http((?!http).)*?video/tos*"); public static final Pattern THUNDER = Pattern.compile("(magnet|thunder|ed2k):.*"); - public static final String CHROME = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.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/122.0.0.0 Safari/537.36"; public static final String ACCEPT = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"; public static final List MEDIA = Arrays.asList("mp4", "mkv", "wmv", "flv", "avi", "iso", "mpg", "ts", "mp3", "aac", "flac", "m4a", "ape", "ogg"); public static final List SUB = Arrays.asList("srt", "ass", "ssa", "vtt"); diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index c3bd10af..e3b98d64 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 3e1d3ffc..ca40094b 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -034284ac61c7bc4f5e9acf7937889bb3 +1c0a77c56998f8ac7484678ddb6e91d2