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 833619bd..ba8378a8 100644 --- a/app/src/main/java/com/github/catvod/crawler/Spider.java +++ b/app/src/main/java/com/github/catvod/crawler/Spider.java @@ -2,21 +2,17 @@ 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; import okhttp3.Dns; +import okhttp3.OkHttpClient; public abstract class Spider { - private boolean proxy; - - public Spider proxy(boolean proxy) { - this.proxy = proxy; - return this; - } - public void init(Context context) throws Exception { } @@ -60,10 +56,6 @@ public abstract class Spider { return false; } - public boolean proxy() { - return proxy; - } - public Object[] proxyLocal(Map params) throws Exception { return null; } @@ -74,4 +66,8 @@ public abstract class Spider { public static Dns safeDns() { return Dns.SYSTEM; } + + public OkHttpClient client() { + return OkHttp.client(); + } } diff --git a/app/src/main/java/com/github/catvod/net/Cronet.java b/app/src/main/java/com/github/catvod/net/Cronet.java index 9d6e2513..ca235add 100644 --- a/app/src/main/java/com/github/catvod/net/Cronet.java +++ b/app/src/main/java/com/github/catvod/net/Cronet.java @@ -1,7 +1,6 @@ package com.github.catvod.net; import com.github.catvod.spider.Init; -import com.github.catvod.utils.Prefers; import com.google.net.cronet.okhttptransport.CronetInterceptor; import org.chromium.net.CronetEngine; @@ -12,7 +11,6 @@ import okhttp3.OkHttpClient; public class Cronet { - private OkHttpClient proxy; private OkHttpClient client; private static class Loader { @@ -25,92 +23,42 @@ public class Cronet { public static OkHttpClient client() { if (get().client != null) return get().client; - return get().client = getBuilder(OkHttp.getBuilder()).build(); + return get().client = getBuilder().build(); } - public static OkHttpClient proxy() { - if (get().proxy != null) return get().proxy; - return get().proxy = getBuilder(OkHttp.getBuilder(Prefers.getString("proxy"))).build(); - } - - public static OkHttpClient client(boolean proxy) { - return proxy ? proxy() : client(); - } - - public static OkHttpClient noRedirect(boolean proxy) { - return client(proxy).newBuilder().followRedirects(false).followSslRedirects(false).build(); + public static OkHttpClient noRedirect() { + return client().newBuilder().followRedirects(false).followSslRedirects(false).build(); } public static String string(String url) { - return string(false, url); - } - - public static String string(boolean proxy, String url) { - return string(proxy, url, null); + return string(url, null); } public static String string(String url, Map header) { - return string(false, url, header); - } - - public static String string(boolean proxy, String url, Map header) { - return string(proxy, url, null, header); + return string(url, null, header); } public static String string(String url, Map params, Map header) { - return string(false, url, params, header); - } - - public static String string(boolean proxy, String url, Map params, Map header) { - return string(client(proxy), url, params, header); - } - - public static String string(OkHttpClient client, String url, Map params, Map header) { - return new OkRequest(OkHttp.GET, url, params, header).execute(client).getBody(); + return new OkRequest(OkHttp.GET, url, params, header).execute(client()).getBody(); } public static String post(String url, Map params) { - return post(false, url, params); - } - - public static String post(boolean proxy, String url, Map params) { - return post(proxy, url, params, null).getBody(); + return post(url, params, null).getBody(); } public static OkResult post(String url, Map params, Map header) { - return post(false, url, params, header); - } - - public static OkResult post(boolean proxy, String url, Map params, Map header) { - return new OkRequest(OkHttp.POST, url, params, header).execute(client(proxy)); + return new OkRequest(OkHttp.POST, url, params, header).execute(client()); } public static String post(String url, String json) { - return post(false, url, json); - } - - public static String post(boolean proxy, String url, String json) { - return post(proxy, url, json, null).getBody(); + return post(url, json, null).getBody(); } public static OkResult post(String url, String json, Map header) { - return post(false, url, json, header); + return new OkRequest(OkHttp.POST, url, json, header).execute(client()); } - public static OkResult post(boolean proxy, String url, String json, Map header) { - return new OkRequest(OkHttp.POST, url, json, header).execute(client(proxy)); - } - - private static OkHttpClient.Builder getBuilder(OkHttpClient.Builder builder) { - addInterceptor(builder); - return builder; - } - - private static void addInterceptor(OkHttpClient.Builder builder) { - try { - builder.addInterceptor(CronetInterceptor.newBuilder(new CronetEngine.Builder(Init.context()).build()).build()); - } catch (Exception e) { - e.printStackTrace(); - } + private static OkHttpClient.Builder getBuilder() { + return OkHttp.getBuilder().addInterceptor(CronetInterceptor.newBuilder(new CronetEngine.Builder(Init.context()).build()).build()); } } 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 8b8f4f89..8be1bd6f 100644 --- a/app/src/main/java/com/github/catvod/net/OkHttp.java +++ b/app/src/main/java/com/github/catvod/net/OkHttp.java @@ -1,20 +1,12 @@ package com.github.catvod.net; -import android.net.Uri; - import com.github.catvod.crawler.Spider; -import com.github.catvod.utils.Prefers; import java.io.IOException; -import java.net.Authenticator; -import java.net.InetSocketAddress; -import java.net.PasswordAuthentication; -import java.net.Proxy; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; -import okhttp3.Credentials; import okhttp3.Dns; import okhttp3.Headers; import okhttp3.OkHttpClient; @@ -26,7 +18,6 @@ public class OkHttp { public static final String POST = "POST"; public static final String GET = "GET"; - private OkHttpClient proxy; private OkHttpClient client; private static class Loader { @@ -41,55 +32,29 @@ public class OkHttp { return Spider.safeDns(); } - public void resetProxy() { - Authenticator.setDefault(null); - proxy = null; - } - public static OkHttpClient client() { if (get().client != null) return get().client; return get().client = getBuilder().build(); } - public static OkHttpClient proxy() { - if (get().proxy != null) return get().proxy; - return get().proxy = getBuilder(Prefers.getString("proxy")).build(); - } - - public static OkHttpClient client(boolean proxy) { - return proxy ? proxy() : client(); - } - - public static OkHttpClient noRedirect(boolean proxy) { - return client(proxy).newBuilder().followRedirects(false).followSslRedirects(false).build(); + public static OkHttpClient noRedirect() { + return client().newBuilder().followRedirects(false).followSslRedirects(false).build(); } public static Response newCall(String url, Map header) throws IOException { - return client(false).newCall(new Request.Builder().url(url).headers(Headers.of(header)).build()).execute(); + return client().newCall(new Request.Builder().url(url).headers(Headers.of(header)).build()).execute(); } public static String string(String url) { - return string(false, url); - } - - public static String string(boolean proxy, String url) { - return string(proxy, url, null); + return string(url, null); } public static String string(String url, Map header) { - return string(false, url, header); + return string(client(), url, null, header); } - public static String string(boolean proxy, String url, Map header) { - return string(proxy, url, null, header); - } - - public static String string(String url, Map params, Map header) { - return string(false, url, params, header); - } - - public static String string(boolean proxy, String url, Map params, Map header) { - return string(client(proxy), url, params, 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) { @@ -97,39 +62,31 @@ public class OkHttp { } public static String post(String url, Map params) { - return post(false, url, params); - } - - public static String post(boolean proxy, String url, Map params) { - return post(proxy, url, params, null).getBody(); + return post(client(), url, params, null).getBody(); } public static OkResult post(String url, Map params, Map header) { - return post(false, url, params, header); + return post(client(), url, params, header); } - public static OkResult post(boolean proxy, String url, Map params, Map header) { - return new OkRequest(POST, url, params, header).execute(client(proxy)); + public static OkResult post(OkHttpClient client, String url, Map params, Map header) { + return new OkRequest(POST, url, params, header).execute(client); } public static String post(String url, String json) { - return post(false, url, json); - } - - public static String post(boolean proxy, String url, String json) { - return post(proxy, url, json, null).getBody(); + return post(url, json, null).getBody(); } public static OkResult post(String url, String json, Map header) { - return post(false, url, json, header); + return post(client(), url, json, header); } - public static OkResult post(boolean proxy, String url, String json, Map header) { - return new OkRequest(POST, url, json, header).execute(client(proxy)); + public static OkResult post(OkHttpClient client, String url, String json, Map header) { + return new OkRequest(POST, url, json, header).execute(client); } public static String getLocation(String url, Map header) throws IOException { - return getLocation(noRedirect(false).newCall(new Request.Builder().url(url).headers(Headers.of(header)).build()).execute().headers().toMultimap()); + return getLocation(noRedirect().newCall(new Request.Builder().url(url).headers(Headers.of(header)).build()).execute().headers().toMultimap()); } public static String getLocation(Map> headers) { @@ -142,28 +99,4 @@ public class OkHttp { public static OkHttpClient.Builder getBuilder() { return new OkHttpClient.Builder().dns(dns()).connectTimeout(30, TimeUnit.SECONDS).readTimeout(30, TimeUnit.SECONDS).writeTimeout(30, TimeUnit.SECONDS).hostnameVerifier(SSLCompat.VERIFIER).sslSocketFactory(new SSLCompat(), SSLCompat.TM); } - - public static OkHttpClient.Builder getBuilder(String proxy) { - Uri uri = Uri.parse(proxy); - String userInfo = uri.getUserInfo(); - OkHttpClient.Builder builder = client().newBuilder(); - if (userInfo != null && userInfo.contains(":")) setAuthenticator(builder, userInfo); - if (uri.getScheme() == null || uri.getHost() == null || uri.getPort() <= 0) return builder; - if (uri.getScheme().startsWith("http")) builder.proxy(new Proxy(Proxy.Type.HTTP, InetSocketAddress.createUnresolved(uri.getHost(), uri.getPort()))); - if (uri.getScheme().startsWith("socks")) builder.proxy(new Proxy(Proxy.Type.SOCKS, InetSocketAddress.createUnresolved(uri.getHost(), uri.getPort()))); - return builder; - } - - private static void setAuthenticator(OkHttpClient.Builder builder, String userInfo) { - builder.proxyAuthenticator((route, response) -> { - String credential = Credentials.basic(userInfo.split(":")[0], userInfo.split(":")[1]); - return response.request().newBuilder().header("Proxy-Authorization", credential).build(); - }); - Authenticator.setDefault(new Authenticator() { - @Override - protected PasswordAuthentication getPasswordAuthentication() { - return new PasswordAuthentication(userInfo.split(":")[0], userInfo.split(":")[1].toCharArray()); - } - }); - } } diff --git a/app/src/main/java/com/github/catvod/spider/AppYsV2.java b/app/src/main/java/com/github/catvod/spider/AppYsV2.java index 1dc3ee9a..e20154a0 100644 --- a/app/src/main/java/com/github/catvod/spider/AppYsV2.java +++ b/app/src/main/java/com/github/catvod/spider/AppYsV2.java @@ -42,7 +42,7 @@ public class AppYsV2 extends Spider { JSONArray jsonArray = null; if (!url.isEmpty()) { SpiderDebug.log(url); - String json = OkHttp.string(proxy(), url, getHeaders(url)); + String json = OkHttp.string(url, getHeaders(url)); JSONObject obj = new JSONObject(json); if (obj.has("list") && obj.get("list") instanceof JSONArray) { jsonArray = obj.getJSONArray("list"); @@ -145,7 +145,7 @@ public class AppYsV2 extends Spider { isTV = true; } SpiderDebug.log(url); - String json = OkHttp.string(proxy(), url, getHeaders(url)); + String json = OkHttp.string(url, getHeaders(url)); JSONObject obj = new JSONObject(json); JSONArray videos = new JSONArray(); if (isTV) { @@ -197,7 +197,7 @@ public class AppYsV2 extends Spider { url = url.replace("筛选year", (extend != null && extend.containsKey("year")) ? extend.get("year") : ""); url = url.replace("排序", (extend != null && extend.containsKey("排序")) ? extend.get("排序") : ""); SpiderDebug.log(url); - String json = OkHttp.string(proxy(), url, getHeaders(url)); + String json = OkHttp.string(url, getHeaders(url)); JSONObject obj = new JSONObject(json); int totalPg = Integer.MAX_VALUE; try { @@ -257,7 +257,7 @@ public class AppYsV2 extends Spider { String apiUrl = getApiUrl(); String url = getPlayUrlPrefix(apiUrl) + ids.get(0); SpiderDebug.log(url); - String json = OkHttp.string(proxy(), url, getHeaders(url)); + String json = OkHttp.string(url, getHeaders(url)); JSONObject obj = new JSONObject(json); JSONObject result = new JSONObject(); JSONObject vod = new JSONObject(); @@ -272,7 +272,7 @@ public class AppYsV2 extends Spider { public String searchContent(String key, boolean quick) throws Exception { String apiUrl = getApiUrl(); String url = getSearchUrl(apiUrl, URLEncoder.encode(key)); - String json = OkHttp.string(proxy(), url, getHeaders(url)); + String json = OkHttp.string(url, getHeaders(url)); JSONObject obj = new JSONObject(json); JSONArray jsonArray = null; JSONArray videos = new JSONArray(); @@ -694,7 +694,7 @@ public class AppYsV2 extends Spider { for (String parseUrl : parseUrls) { if (parseUrl.isEmpty() || parseUrl.equals("null")) continue; String playUrl = parseUrl + url; - String content = OkHttp.string(proxy(), playUrl); + String content = OkHttp.string(playUrl); JSONObject tryJson = null; try { tryJson = jsonParse(url, content); @@ -738,11 +738,6 @@ public class AppYsV2 extends Spider { return Utils.isVideoFormat(url); } - @Override - public void destroy() { - OkHttp.get().resetProxy(); - } - private String getApiUrl() { if (extInfos == null || extInfos.length < 1) return ""; return extInfos[0].trim(); 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 15f390b5..45645770 100644 --- a/app/src/main/java/com/github/catvod/spider/Eighteen.java +++ b/app/src/main/java/com/github/catvod/spider/Eighteen.java @@ -27,7 +27,7 @@ public class Eighteen extends Spider { public String homeContent(boolean filter) throws Exception { List classes = new ArrayList<>(); List list = new ArrayList<>(); - Document doc = Jsoup.parse(OkHttp.string(proxy(), url)); + 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, ""); @@ -50,7 +50,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(proxy(), url + tid)); + 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(); @@ -63,7 +63,7 @@ public class Eighteen extends Spider { @Override public String detailContent(List ids) throws Exception { - Document doc = Jsoup.parse(OkHttp.string(proxy(), url + ids.get(0))); + 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"); @@ -94,17 +94,12 @@ public class Eighteen extends Spider { return Result.get().url(result.get("url")).string(); } - @Override - public void destroy() { - OkHttp.get().resetProxy(); - } - private String searchContent(String key, String pg) { HashMap params = new HashMap<>(); params.put("search_keyword", key); params.put("search_type", "fc"); params.put("op", "search"); - String res = OkHttp.post(proxy(), url + "searchform_search/all/" + pg + ".html", params); + 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/Hanime.java b/app/src/main/java/com/github/catvod/spider/Hanime.java index 30082985..13665868 100644 --- a/app/src/main/java/com/github/catvod/spider/Hanime.java +++ b/app/src/main/java/com/github/catvod/spider/Hanime.java @@ -43,10 +43,10 @@ public class Hanime extends Spider { List list = new ArrayList<>(); List classes = new ArrayList<>(); LinkedHashMap> filters = new LinkedHashMap<>(); - Document doc1 = Jsoup.parse(OkHttp.string(proxy(), siteUrl.concat("/search?genre=裏番"), getHeaders())); + Document doc1 = Jsoup.parse(OkHttp.string(siteUrl.concat("/search?genre=裏番"), getHeaders())); List sorts = doc1.select("div.hentai-sort-options-wrapper").eachText(); List years = doc1.getElementById("year").select("option").eachAttr("value"); - Document doc2 = Jsoup.parse(OkHttp.string(proxy(), siteUrl, getHeaders())); + Document doc2 = Jsoup.parse(OkHttp.string(siteUrl, getHeaders())); for (Element element : doc2.select("a.nav-item")) { String text = element.text(); if (text.equals("新番預告") || text.equals("H漫畫")) continue; @@ -75,7 +75,7 @@ public class Hanime extends Spider { if (extend.get("by") == null) extend.put("by", "最新上市"); if (extend.get("year") == null) extend.put("year", ""); String target = siteUrl.concat("/search?genre=").concat(tid).concat("&page=").concat(pg).concat("&sort=").concat(extend.get("by")).concat("&year=").concat(extend.get("year")); - Document doc = Jsoup.parse(OkHttp.string(proxy(), target, getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(target, getHeaders())); for (Element element : doc.select("div.col-xs-6")) { String pic = element.select("img").get(1).attr("src"); String url = element.select("a.overlay").attr("href"); @@ -100,7 +100,7 @@ public class Hanime extends Spider { @Override public String detailContent(List ids) throws Exception { - Document doc = Jsoup.parse(OkHttp.string(proxy(), siteUrl.concat("/watch?v=").concat(ids.get(0)), getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(siteUrl.concat("/watch?v=").concat(ids.get(0)), getHeaders())); String name = doc.getElementById("shareBtn-title").text(); JSONObject json = new JSONObject(doc.select("script[type=application/ld+json]").html().trim()); String content = json.optString("description"); @@ -120,7 +120,7 @@ public class Hanime extends Spider { public String searchContent(String key, boolean quick) throws Exception { List list = new ArrayList<>(); String target = siteUrl.concat("/search?query=").concat(key).concat("&genre=&sort=&year=&month=&duration="); - Document doc = Jsoup.parse(OkHttp.string(proxy(), target, getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(target, getHeaders())); for (Element element : doc.select("div.col-xs-6")) { String pic = element.select("img").get(1).attr("src"); String url = element.select("a.overlay").attr("href"); @@ -135,9 +135,4 @@ public class Hanime extends Spider { public String playerContent(String flag, String id, List vipFlags) throws Exception { return Result.get().url(id).header(getHeaders()).string(); } - - @Override - public void destroy() { - OkHttp.get().resetProxy(); - } } 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 e1bce735..f26cd73f 100644 --- a/app/src/main/java/com/github/catvod/spider/Jable.java +++ b/app/src/main/java/com/github/catvod/spider/Jable.java @@ -34,13 +34,13 @@ public class Jable extends Spider { public String homeContent(boolean filter) throws Exception { List list = new ArrayList<>(); List classes = new ArrayList<>(); - Document doc = Jsoup.parse(OkHttp.string(proxy(), cateUrl, getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(cateUrl, getHeaders())); for (Element element : doc.select("div.img-box > a")) { String typeId = element.attr("href").split("/")[4]; String typeName = element.select("div.absolute-center > h4").text(); classes.add(new Class(typeId, typeName)); } - doc = Jsoup.parse(OkHttp.string(proxy(), siteUrl, getHeaders())); + doc = Jsoup.parse(OkHttp.string(siteUrl, getHeaders())); for (Element element : doc.select("div.video-img-box")) { String pic = element.select("img").attr("data-src"); String url = element.select("a").attr("href"); @@ -56,7 +56,7 @@ public class Jable extends Spider { public String categoryContent(String tid, String pg, boolean filter, HashMap extend) throws Exception { List list = new ArrayList<>(); String target = cateUrl + tid + "/?mode=async&function=get_block&block_id=list_videos_common_videos_list&sort_by=post_date&from=" + String.format(Locale.getDefault(), "%02d", Integer.parseInt(pg)) + "&_=" + System.currentTimeMillis(); - Document doc = Jsoup.parse(OkHttp.string(proxy(), target, getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(target, getHeaders())); for (Element element : doc.select("div.video-img-box")) { String pic = element.select("img").attr("data-src"); String url = element.select("a").attr("href"); @@ -69,7 +69,7 @@ public class Jable extends Spider { @Override public String detailContent(List ids) throws Exception { - Document doc = Jsoup.parse(OkHttp.string(proxy(), detailUrl.concat(ids.get(0)).concat("/"), getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(detailUrl.concat(ids.get(0)).concat("/"), getHeaders())); String name = doc.select("meta[property=og:title]").attr("content"); String pic = doc.select("meta[property=og:image]").attr("content"); String year = doc.select("span.inactive-color").get(0).text(); @@ -86,7 +86,7 @@ public class Jable extends Spider { @Override public String searchContent(String key, boolean quick) throws Exception { List list = new ArrayList<>(); - Document doc = Jsoup.parse(OkHttp.string(proxy(), searchUrl.concat(URLEncoder.encode(key)).concat("/"), getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(searchUrl.concat(URLEncoder.encode(key)).concat("/"), getHeaders())); for (Element element : doc.select("div.video-img-box")) { String pic = element.select("img").attr("data-src"); String url = element.select("a").attr("href"); @@ -101,9 +101,4 @@ public class Jable extends Spider { public String playerContent(String flag, String id, List vipFlags) throws Exception { return Result.get().url(id).header(getHeaders()).string(); } - - @Override - public void destroy() { - OkHttp.get().resetProxy(); - } } diff --git a/app/src/main/java/com/github/catvod/spider/Miss.java b/app/src/main/java/com/github/catvod/spider/Miss.java index d4284e97..e63a8f85 100644 --- a/app/src/main/java/com/github/catvod/spider/Miss.java +++ b/app/src/main/java/com/github/catvod/spider/Miss.java @@ -28,7 +28,7 @@ public class Miss extends Spider { List list = new ArrayList<>(); List classes = new ArrayList<>(); LinkedHashMap> filters = new LinkedHashMap<>(); - Document doc = Jsoup.parse(OkHttp.string(proxy(), url)); + Document doc = Jsoup.parse(OkHttp.string(url)); List typeIds = Arrays.asList("chinese-subtitle", "new", "release", "uncensored-leak", "genres/VR", "today-hot", "weekly-hot", "monthly-hot", "siro", "luxu", "gana", "maan", "scute", "ara", "uncensored-leak", "fc2", "heyzo", "tokyohot", "1pondo", "caribbeancom", "caribbeancompr", "10musume", "pacopacomama", "gachinco", "xxxav", "marriedslash", "naughty4610", "naughty0930", "madou", "twav", "furuke"); for (Element a : doc.select("nav a")) { String typeId = a.attr("href").replace(url, ""); @@ -55,7 +55,7 @@ public class Miss extends Spider { String filters = extend.get("filters"); if (TextUtils.isEmpty(filters)) target += "?page=" + pg; else target += "?filters=" + extend.get("filters") + "&page=" + pg; - Document doc = Jsoup.parse(OkHttp.string(proxy(), target)); + Document doc = Jsoup.parse(OkHttp.string(target)); for (Element div : doc.select("div.thumbnail")) { String id = div.select("a.text-secondary").attr("href").replace(url, ""); String name = div.select("a.text-secondary").text(); @@ -70,7 +70,7 @@ public class Miss extends Spider { @Override public String detailContent(List ids) throws Exception { - Document doc = Jsoup.parse(OkHttp.string(proxy(), url + ids.get(0))); + Document doc = Jsoup.parse(OkHttp.string(url + ids.get(0))); String name = doc.select("meta[property=og:title]").attr("content"); String pic = doc.select("meta[property=og:image]").attr("content"); Vod vod = new Vod(); @@ -97,14 +97,9 @@ public class Miss extends Spider { return Result.get().parse().url(url + id).string(); } - @Override - public void destroy() { - OkHttp.get().resetProxy(); - } - private String searchContent(String key, String pg) { List list = new ArrayList<>(); - Document doc = Jsoup.parse(OkHttp.string(proxy(), url + "search/" + key + "?page=" + pg)); + Document doc = Jsoup.parse(OkHttp.string(url + "search/" + key + "?page=" + pg)); for (Element div : doc.select("div.thumbnail")) { String id = div.select("a.text-secondary").attr("href").replace(url, ""); String name = div.select("a.text-secondary").text(); 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 f5b6e20f..81cc4f96 100644 --- a/app/src/main/java/com/github/catvod/spider/Star.java +++ b/app/src/main/java/com/github/catvod/spider/Star.java @@ -26,6 +26,8 @@ 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"; @@ -44,10 +46,19 @@ public class Star extends Spider { } private String getVer() { - for (Element script : Jsoup.parse(OkHttp.string(proxy(), siteUrl, getHeader())).select("script")) if (script.attr("src").contains("buildManifest.js")) return script.attr("src").split("/")[3]; + 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]; 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<>(); @@ -65,7 +76,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(proxy(), siteUrl + type.getTypeId() + "/all/all/all", getHeader())).select("#__NEXT_DATA__").get(0); + Element script = Jsoup.parse(OkHttp.string(client(), 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()); @@ -76,7 +87,7 @@ public class Star extends Spider { @Override public String homeVideoContent() throws Exception { List list = new ArrayList<>(); - Element script = Jsoup.parse(OkHttp.string(proxy(), siteUrl)).select("#__NEXT_DATA__").get(0); + Element script = Jsoup.parse(OkHttp.string(client(), 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); @@ -94,7 +105,7 @@ public class Star extends Spider { if (year.length() > 0) query.setYear(year); if (type.length() > 0) query.setLabel(type); if (area.length() > 0) query.setCountry(area); - String body = OkHttp.post(proxy(), apiUrl, query.toString()); + String body = OkHttp.post(apiUrl, query.toString()); List cards = Card.arrayFrom(new JSONObject(body).getJSONObject("data").getJSONArray("list").toString()); List list = new ArrayList<>(); for (Card card : cards) list.add(card.vod()); @@ -103,7 +114,7 @@ public class Star extends Spider { @Override public String detailContent(List ids) throws Exception { - Element script = Jsoup.parse(OkHttp.string(proxy(), detail.concat(ids.get(0)), getHeader())).select("#__NEXT_DATA__").get(0); + Element script = Jsoup.parse(OkHttp.string(client(), detail.concat(ids.get(0)), getHeader())).select("#__NEXT_DATA__").get(0); Detail detail = Detail.objectFrom(new JSONObject(script.data()).getJSONObject("props").getJSONObject("pageProps").getJSONObject("pageData").toString()); Vod vod = new Vod(); vod.setVodId(ids.get(0)); @@ -126,7 +137,7 @@ public class Star extends Spider { @Override public String searchContent(String key, boolean quick) throws Exception { List list = new ArrayList<>(); - String json = OkHttp.string(proxy(), siteUrl + data + ver + "/search.json?word=" + URLEncoder.encode(key), getHeader()); + String json = OkHttp.string(client(), 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.string(list); @@ -136,10 +147,5 @@ public class Star extends Spider { public String playerContent(String flag, String id, List vipFlags) throws Exception { return Result.get().url(id).string(); } - - @Override - public void destroy() { - OkHttp.get().resetProxy(); - } } 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 0ea10c14..40c132e9 100644 --- a/app/src/main/java/com/github/catvod/spider/Wogg.java +++ b/app/src/main/java/com/github/catvod/spider/Wogg.java @@ -103,6 +103,8 @@ public class Wogg extends Ali { item.setTypeName(String.join(",", doc.select(".video-info-header div.tag-link a").eachText())); List shareLinks = doc.select(".module-row-text").eachAttr("data-clipboard-text"); + for (int i = 0; i < shareLinks.size(); i++) shareLinks.set(i, shareLinks.get(i).trim()); + item.setVodPlayFrom(super.detailContentVodPlayFrom(shareLinks)); item.setVodPlayUrl(super.detailContentVodPlayUrl(shareLinks)); 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 741976a6..c260a9b9 100644 --- a/app/src/main/java/com/github/catvod/spider/XPath.java +++ b/app/src/main/java/com/github/catvod/spider/XPath.java @@ -317,11 +317,6 @@ public class XPath extends Spider { return Utils.isVideoFormat(url); } - @Override - public void destroy() { - OkHttp.get().resetProxy(); - } - protected String ext = null; protected Rule rule = null; @@ -329,7 +324,7 @@ public class XPath extends Spider { if (rule == null) { if (ext != null) { if (ext.startsWith("http")) { - String json = OkHttp.string(proxy(), ext, null); + String json = OkHttp.string(ext, null); rule = Rule.fromJson(json); loadRuleExt(json); } else { @@ -345,6 +340,6 @@ public class XPath extends Spider { protected String fetch(String webUrl) { SpiderDebug.log(webUrl); - return OkHttp.string(proxy(), webUrl, getHeaders()); + return OkHttp.string(webUrl, getHeaders()); } } \ No newline at end of file diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index 7b5bfaa5..9e7a0deb 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 2f19ae60..7d13415b 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -e615e21ea55994ac1dbc284463412a3a +37fc87b676f1a75fd1a1db559126b888 diff --git a/json/adult.json b/json/adult.json index b5d1ef97..ace8e0c8 100644 --- a/json/adult.json +++ b/json/adult.json @@ -1,5 +1,5 @@ { - "spider": "https://fongmi.cachefly.net/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;e615e21ea55994ac1dbc284463412a3a", + "spider": "https://fongmi.cachefly.net/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;5931706b319f6cb041b667eeed890608", "wallpaper": "https://gao.chuqiuyu.tk", "sites": [ { @@ -66,7 +66,6 @@ "type": 3, "api": "csp_Eighteen", "searchable": 1, - "proxy": true, "style": { "type": "rect", "ratio": 1.485 @@ -78,7 +77,6 @@ "type": 3, "api": "csp_Jable", "searchable": 1, - "proxy": true, "style": { "type": "rect", "ratio": 1.77 @@ -90,7 +88,6 @@ "type": 3, "api": "csp_Miss", "searchable": 1, - "proxy": true, "style": { "type": "rect", "ratio": 1.777 @@ -102,7 +99,6 @@ "type": 3, "api": "csp_Hanime", "searchable": 1, - "proxy": true, "style": { "type": "rect", "ratio": 0.68 diff --git a/json/config.json b/json/config.json index 87a5212e..158fea2d 100644 --- a/json/config.json +++ b/json/config.json @@ -1,5 +1,5 @@ { - "spider": "https://fongmi.cachefly.net/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;e615e21ea55994ac1dbc284463412a3a", + "spider": "https://fongmi.cachefly.net/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;5931706b319f6cb041b667eeed890608", "wallpaper": "http://饭太硬.top/深色壁纸/api.php", "sites": [ {