diff --git a/app/build.gradle b/app/build.gradle index fa87c62d..b4bfe167 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,7 +9,7 @@ android { defaultConfig { applicationId "com.github.catvod.demo" minSdk 17 - targetSdk 33 + targetSdk 29 } buildTypes { @@ -32,6 +32,7 @@ android { } dependencies { + implementation 'com.google.net.cronet:cronet-okhttp:0.1.0' implementation 'com.squareup.okhttp3:okhttp:3.12.13' implementation 'com.google.code.gson:gson:2.8.6' implementation 'cn.wanghaomiao:JsoupXpath:2.5.1' diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index d7db20cc..b1353f98 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -29,3 +29,5 @@ # OkHttp -keep class okio.**{*;} -keep class okhttp3.**{*;} +-keep class com.google.net.**{*;} +-keep class org.chromium.net.**{*;} diff --git a/app/src/main/java/com/github/catvod/bean/alist/Drive.java b/app/src/main/java/com/github/catvod/bean/alist/Drive.java index b672ec1e..b35be04f 100644 --- a/app/src/main/java/com/github/catvod/bean/alist/Drive.java +++ b/app/src/main/java/com/github/catvod/bean/alist/Drive.java @@ -3,7 +3,7 @@ package com.github.catvod.bean.alist; import android.text.TextUtils; import com.github.catvod.bean.Class; -import com.github.catvod.net.OkHttpUtil; +import com.github.catvod.net.OkHttp; import com.google.gson.Gson; import com.google.gson.annotations.SerializedName; @@ -82,7 +82,7 @@ public class Drive { } public Drive check() { - if (getVersion() == 0) setVersion(OkHttpUtil.string(settingsApi()).contains("v2.") ? 2 : 3); + if (getVersion() == 0) setVersion(OkHttp.string(settingsApi()).contains("v2.") ? 2 : 3); return this; } diff --git a/app/src/main/java/com/github/catvod/net/CallBack.java b/app/src/main/java/com/github/catvod/net/CallBack.java new file mode 100644 index 00000000..cd2b03bf --- /dev/null +++ b/app/src/main/java/com/github/catvod/net/CallBack.java @@ -0,0 +1,35 @@ +package com.github.catvod.net; + +import java.io.IOException; + +import okhttp3.Call; +import okhttp3.Response; + +public class CallBack { + + private String result; + + public String getResult() { + return result; + } + + public void setResult(String val) { + result = val; + } + + public void onSuccess(Call call, Response response) { + setResult(onParseResponse(call, response)); + } + + public void onError() { + setResult(""); + } + + public String onParseResponse(Call call, Response response) { + try { + return response.body().string(); + } catch (IOException e) { + return ""; + } + } +} diff --git a/app/src/main/java/com/github/catvod/net/OKCallBack.java b/app/src/main/java/com/github/catvod/net/OKCallBack.java deleted file mode 100644 index 83755877..00000000 --- a/app/src/main/java/com/github/catvod/net/OKCallBack.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.github.catvod.net; - -import java.io.IOException; - -import okhttp3.Call; -import okhttp3.Response; - -public abstract class OKCallBack { - - private T result = null; - - public T getResult() { - return result; - } - - protected void setResult(T val) { - result = val; - } - - protected void onError(final Call call, final Exception e) { - onFailure(call, e); - } - - protected void onSuccess(Call call, Response response) { - T obj = onParseResponse(call, response); - setResult(obj); - onResponse(obj); - } - - protected abstract T onParseResponse(Call call, Response response); - - protected void onFailure(Call call, Exception e) { - } - - protected abstract void onResponse(T response); - - public static class OKCallBackDefault extends OKCallBack { - - @Override - public Response onParseResponse(Call call, Response response) { - return response; - } - - @Override - protected void onResponse(Response response) { - } - } - - public static class OKCallBackString extends OKCallBack { - - @Override - public void onError(Call call, Exception e) { - setResult(""); - super.onError(call, e); - } - - @Override - public String onParseResponse(Call call, Response response) { - try { - return response.body().string(); - } catch (IOException e) { - return ""; - } - } - - @Override - protected void onFailure(Call call, Exception e) { - setResult(""); - super.onFailure(call, e); - } - - @Override - protected void onResponse(String response) { - } - } -} diff --git a/app/src/main/java/com/github/catvod/net/OkHttpUtil.java b/app/src/main/java/com/github/catvod/net/OkHttp.java similarity index 59% rename from app/src/main/java/com/github/catvod/net/OkHttpUtil.java rename to app/src/main/java/com/github/catvod/net/OkHttp.java index 689617e2..64d7aabb 100644 --- a/app/src/main/java/com/github/catvod/net/OkHttpUtil.java +++ b/app/src/main/java/com/github/catvod/net/OkHttp.java @@ -1,8 +1,11 @@ package com.github.catvod.net; import com.github.catvod.crawler.Spider; +import com.github.catvod.spider.Init; +import com.google.net.cronet.okhttptransport.CronetInterceptor; + +import org.chromium.net.CronetEngine; -import java.io.IOException; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; @@ -12,23 +15,38 @@ import okhttp3.Dns; import okhttp3.OkHttpClient; import okhttp3.Response; -public class OkHttpUtil { +public class OkHttp { - public static final String METHOD_GET = "GET"; public static final String METHOD_POST = "POST"; + public static final String METHOD_GET = "GET"; - private static final Object lockO = new Object(); - private static OkHttpClient defaultClient = null; - private static final int DEFAULT_TIMEOUT = 15; + private final OkHttpClient noRedirect; + private final OkHttpClient client; - public static OkHttpClient defaultClient() { - synchronized (lockO) { - if (defaultClient == null) { - OkHttpClient.Builder builder = new OkHttpClient.Builder().dns(safeDns()).readTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS).writeTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS).connectTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS).retryOnConnectionFailure(true).hostnameVerifier(SSLSocketFactoryCompat.hostnameVerifier).sslSocketFactory(new SSLSocketFactoryCompat(), SSLSocketFactoryCompat.trustAllCert); - defaultClient = builder.build(); - } - return defaultClient; - } + private static class Loader { + static volatile OkHttp INSTANCE = new OkHttp(); + } + + public static OkHttp get() { + return Loader.INSTANCE; + } + + public OkHttp() { + client = getBuilder().build(); + noRedirect = client.newBuilder().followRedirects(false).followSslRedirects(false).build(); + } + + private OkHttpClient.Builder getBuilder() { + CronetEngine engine = new CronetEngine.Builder(Init.context()).build(); + return new OkHttpClient.Builder().dns(safeDns()).addInterceptor(CronetInterceptor.newBuilder(engine).build()).callTimeout(30, TimeUnit.SECONDS).readTimeout(30, TimeUnit.SECONDS).writeTimeout(30, TimeUnit.SECONDS).connectTimeout(30, TimeUnit.SECONDS).retryOnConnectionFailure(true).hostnameVerifier(SSLSocketFactoryCompat.hostnameVerifier).sslSocketFactory(new SSLSocketFactoryCompat(), SSLSocketFactoryCompat.trustAllCert); + } + + private static OkHttpClient client() { + return get().client; + } + + private static OkHttpClient noRedirect() { + return get().noRedirect; } public static Dns safeDns() { @@ -39,26 +57,22 @@ public class OkHttpUtil { } } - public static String stringNoRedirect(String url, Map headerMap, Map> respHeaderMap) { - return string(new OkHttpClient.Builder().dns(safeDns()).readTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS).writeTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS).connectTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS).followRedirects(false).followSslRedirects(false).retryOnConnectionFailure(true).sslSocketFactory(new SSLSocketFactoryCompat(), SSLSocketFactoryCompat.trustAllCert).build(), url, null, null, headerMap, respHeaderMap, OkHttpUtil.METHOD_GET); + public static void stringNoRedirect(String url, Map headerMap, Map> respHeaderMap) { + string(noRedirect(), url, null, null, headerMap, respHeaderMap, OkHttp.METHOD_GET); } public static String string(OkHttpClient client, String url, String tag, Map paramsMap, Map headerMap, Map> respHeaderMap, String httpMethod) { - OKCallBack.OKCallBackString callback = new OKCallBack.OKCallBackString() { + CallBack callback = new CallBack() { @Override public String onParseResponse(Call call, Response response) { - try { - if (respHeaderMap != null) { - respHeaderMap.clear(); - respHeaderMap.putAll(response.headers().toMultimap()); - } - return response.body().string(); - } catch (IOException e) { - return ""; + if (respHeaderMap != null) { + respHeaderMap.clear(); + respHeaderMap.putAll(response.headers().toMultimap()); } + return super.onParseResponse(call, response); } }; - OKRequest req = new OKRequest(httpMethod, url, paramsMap, headerMap, callback); + OkRequest req = new OkRequest(httpMethod, url, paramsMap, headerMap, callback); req.setTag(tag); req.execute(client); return callback.getResult(); @@ -85,19 +99,19 @@ public class OkHttpUtil { } public static String string(String url, String tag, Map paramsMap, Map headerMap, Map> respHeaderMap) { - return string(defaultClient(), url, tag, paramsMap, headerMap, respHeaderMap, OkHttpUtil.METHOD_GET); + return string(client(), url, tag, paramsMap, headerMap, respHeaderMap, OkHttp.METHOD_GET); } - public static void get(String url, OKCallBack callBack) { + public static void get(String url, CallBack callBack) { get(url, null, callBack); } - public static void get(String url, Map paramsMap, OKCallBack callBack) { + public static void get(String url, Map paramsMap, CallBack callBack) { get(url, paramsMap, null, callBack); } - public static void get(String url, Map paramsMap, Map headerMap, OKCallBack callBack) { - new OKRequest(METHOD_GET, url, paramsMap, headerMap, callBack).execute(defaultClient()); + public static void get(String url, Map paramsMap, Map headerMap, CallBack callBack) { + new OkRequest(METHOD_GET, url, paramsMap, headerMap, callBack).execute(client()); } public static String post(String url) { @@ -113,7 +127,7 @@ public class OkHttpUtil { } public static String post(String url, Map paramsMap, Map headerMap, Map> respHeaderMap) { - return string(defaultClient(), url, null, paramsMap, headerMap, respHeaderMap, METHOD_POST); + return string(client(), url, null, paramsMap, headerMap, respHeaderMap, METHOD_POST); } public static String postJson(String url, String json) { @@ -121,8 +135,8 @@ public class OkHttpUtil { } public static String postJson(String url, String json, Map headerMap) { - OKCallBack.OKCallBackString callback = new OKCallBack.OKCallBackString(); - new OKRequest(METHOD_POST, url, json, headerMap, callback).execute(defaultClient()); + CallBack callback = new CallBack(); + new OkRequest(METHOD_POST, url, json, headerMap, callback).execute(client()); return callback.getResult(); } @@ -141,7 +155,7 @@ public class OkHttpUtil { } public static void cancel(Object tag) { - cancel(defaultClient(), tag); + cancel(client(), tag); } public static String getRedirectLocation(Map> headers) { diff --git a/app/src/main/java/com/github/catvod/net/OKRequest.java b/app/src/main/java/com/github/catvod/net/OkRequest.java similarity index 80% rename from app/src/main/java/com/github/catvod/net/OKRequest.java rename to app/src/main/java/com/github/catvod/net/OkRequest.java index 425801d0..bdca4313 100644 --- a/app/src/main/java/com/github/catvod/net/OKRequest.java +++ b/app/src/main/java/com/github/catvod/net/OkRequest.java @@ -9,30 +9,31 @@ import okhttp3.Call; import okhttp3.FormBody; import okhttp3.MediaType; import okhttp3.OkHttpClient; +import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; -class OKRequest { +class OkRequest { private final String mMethodType; private final Map mParamsMap; private final String mJsonStr; private final Map mHeaderMap; - private final OKCallBack mCallBack; + private final CallBack mCallBack; private String mUrl; private Object mTag = null; - private okhttp3.Request mOkHttpRequest; - private okhttp3.Request.Builder mRequestBuilder; + private Request mOkHttpRequest; + private Request.Builder mRequestBuilder; - OKRequest(String methodType, String url, Map paramsMap, Map headerMap, OKCallBack callBack) { + OkRequest(String methodType, String url, Map paramsMap, Map headerMap, CallBack callBack) { this(methodType, url, null, paramsMap, headerMap, callBack); } - OKRequest(String methodType, String url, String jsonStr, Map headerMap, OKCallBack callBack) { + OkRequest(String methodType, String url, String jsonStr, Map headerMap, CallBack callBack) { this(methodType, url, jsonStr, null, headerMap, callBack); } - private OKRequest(String methodType, String url, String jsonStr, Map paramsMap, Map headerMap, OKCallBack callBack) { + private OkRequest(String methodType, String url, String jsonStr, Map paramsMap, Map headerMap, CallBack callBack) { mMethodType = methodType; mUrl = url; mJsonStr = jsonStr; @@ -47,12 +48,12 @@ class OKRequest { } private void getInstance() { - mRequestBuilder = new okhttp3.Request.Builder(); + mRequestBuilder = new Request.Builder(); switch (mMethodType) { - case OkHttpUtil.METHOD_GET: + case OkHttp.METHOD_GET: setGetParams(); break; - case OkHttpUtil.METHOD_POST: + case OkHttp.METHOD_POST: mRequestBuilder.post(getRequestBody()); break; } @@ -106,7 +107,7 @@ class OKRequest { } } catch (IOException e) { if (mCallBack != null) { - mCallBack.onError(call, e); + mCallBack.onError(); } } } 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 9d2c313c..a4cbd928 100644 --- a/app/src/main/java/com/github/catvod/parser/JsonBasic.java +++ b/app/src/main/java/com/github/catvod/parser/JsonBasic.java @@ -3,7 +3,7 @@ package com.github.catvod.parser; import android.util.Base64; import com.github.catvod.crawler.SpiderDebug; -import com.github.catvod.net.OkHttpUtil; +import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Misc; import org.json.JSONObject; @@ -26,7 +26,7 @@ public class JsonBasic { String realUrl = reqHeaders.get("url"); reqHeaders.remove("url"); SpiderDebug.log(realUrl + url); - String json = OkHttpUtil.string(realUrl + url, reqHeaders); + String json = OkHttp.string(realUrl + url, reqHeaders); JSONObject taskResult = Misc.jsonParse(url, json); if (taskResult == null) continue; taskResult.put("jxFrom", jxName); 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 5df0829a..30fe5a62 100644 --- a/app/src/main/java/com/github/catvod/parser/JsonParallel.java +++ b/app/src/main/java/com/github/catvod/parser/JsonParallel.java @@ -1,7 +1,7 @@ package com.github.catvod.parser; import com.github.catvod.crawler.SpiderDebug; -import com.github.catvod.net.OkHttpUtil; +import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Misc; import org.json.JSONObject; @@ -35,7 +35,7 @@ public class JsonParallel { String realUrl = reqHeaders.get("url"); reqHeaders.remove("url"); SpiderDebug.log(realUrl + url); - String json = OkHttpUtil.string(realUrl + url, ParseOKTag, reqHeaders); + String json = OkHttp.string(realUrl + url, ParseOKTag, reqHeaders); JSONObject taskResult = Misc.jsonParse(url, json); taskResult.put("jxFrom", jxName); SpiderDebug.log(taskResult.toString()); @@ -51,7 +51,7 @@ public class JsonParallel { Future completed = completionService.take(); pTaskResult = completed.get(); if (pTaskResult != null) { - OkHttpUtil.cancel(ParseOKTag); + OkHttp.cancel(ParseOKTag); for (int j = 0; j < futures.size(); j++) { try { futures.get(j).cancel(true); 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 fdf6f320..b6ebde4e 100644 --- a/app/src/main/java/com/github/catvod/parser/JsonSequence.java +++ b/app/src/main/java/com/github/catvod/parser/JsonSequence.java @@ -1,7 +1,7 @@ package com.github.catvod.parser; import com.github.catvod.crawler.SpiderDebug; -import com.github.catvod.net.OkHttpUtil; +import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Misc; import org.json.JSONObject; @@ -22,7 +22,7 @@ public class JsonSequence { String realUrl = reqHeaders.get("url"); reqHeaders.remove("url"); SpiderDebug.log(realUrl + url); - String json = OkHttpUtil.string(realUrl + url, reqHeaders); + String json = OkHttp.string(realUrl + url, reqHeaders); JSONObject taskResult = Misc.jsonParse(url, json); if (taskResult == null) continue; taskResult.put("jxFrom", jxName); 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 6fcfab37..2093c1e7 100644 --- a/app/src/main/java/com/github/catvod/spider/AList.java +++ b/app/src/main/java/com/github/catvod/spider/AList.java @@ -11,7 +11,7 @@ import com.github.catvod.bean.alist.Drive; 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.OkHttpUtil; +import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Misc; import com.github.catvod.utils.Trans; @@ -40,7 +40,7 @@ public class AList extends Spider { private void fetchRule() { if (drives != null && !drives.isEmpty()) return; - if (ext.startsWith("http")) ext = OkHttpUtil.string(ext); + if (ext.startsWith("http")) ext = OkHttp.string(ext); drives = Drive.objectFrom(ext).getDrives(); } @@ -135,7 +135,7 @@ public class AList extends Spider { JSONObject params = new JSONObject(); params.put("path", path); params.put("password", drive.getPassword()); - String response = OkHttpUtil.postJson(drive.getApi(), params.toString()); + String response = OkHttp.postJson(drive.getApi(), params.toString()); return Item.objectFrom(getDetailJson(drive.isNew(), response)); } catch (Exception e) { return new Item(); @@ -150,7 +150,7 @@ public class AList extends Spider { JSONObject params = new JSONObject(); params.put("path", path); params.put("password", drive.getPassword()); - String response = OkHttpUtil.postJson(drive.listApi(), params.toString()); + String response = OkHttp.postJson(drive.listApi(), params.toString()); List items = Item.arrayFrom(getListJson(drive.isNew(), response)); Iterator iterator = items.iterator(); if (filter) while (iterator.hasNext()) if (iterator.next().ignore(drive.isNew())) iterator.remove(); @@ -162,7 +162,7 @@ public class AList extends Spider { private void search(CountDownLatch cd, List list, Drive drive, String keyword) { try { - String response = OkHttpUtil.postJson(drive.searchApi(), drive.params(keyword)); + String response = OkHttp.postJson(drive.searchApi(), drive.params(keyword)); List items = Item.arrayFrom(getSearchJson(drive.isNew(), response)); for (Item item : items) if (!item.ignore(drive.isNew())) list.add(item.getVod(drive)); } catch (Exception e) { 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 78ce1349..03926785 100644 --- a/app/src/main/java/com/github/catvod/spider/Ali.java +++ b/app/src/main/java/com/github/catvod/spider/Ali.java @@ -11,7 +11,7 @@ import com.github.catvod.bean.Vod; import com.github.catvod.bean.ali.Data; import com.github.catvod.bean.ali.Item; import com.github.catvod.crawler.SpiderDebug; -import com.github.catvod.net.OkHttpUtil; +import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Misc; import com.github.catvod.utils.Prefers; import com.github.catvod.utils.QRCode; @@ -49,7 +49,7 @@ public class Ali { public Ali(String token) { if (TextUtils.isEmpty(token)) Init.show("尚未設定 Token"); - if (token.startsWith("http")) token = OkHttpUtil.string(token); + if (token.startsWith("http")) token = OkHttp.string(token); refreshToken = Prefers.getString("token", token); } @@ -69,12 +69,12 @@ public class Ali { private String post(String url, JSONObject body) { url = url.startsWith("https") ? url : "https://api.aliyundrive.com/" + url; - return OkHttpUtil.postJson(url, body.toString(), getHeaders()); + return OkHttp.postJson(url, body.toString(), getHeaders()); } private static String post(String url, JSONObject body, String shareToken) { url = url.startsWith("https") ? url : "https://api.aliyundrive.com/" + url; - return OkHttpUtil.postJson(url, body.toString(), getHeaders(shareToken)); + return OkHttp.postJson(url, body.toString(), getHeaders(shareToken)); } public String detailContent(List ids) throws Exception { @@ -252,8 +252,8 @@ public class Ali { String json = post("v2/file/get_share_link_video_preview_play_info", body, shareToken); JSONArray taskList = new JSONObject(json).getJSONObject("video_preview_play_info").getJSONArray("live_transcoding_task_list"); Map> respHeaders = new HashMap<>(); - OkHttpUtil.stringNoRedirect(getPreviewQuality(taskList), getHeaders(), respHeaders); - return OkHttpUtil.getRedirectLocation(respHeaders); + OkHttp.stringNoRedirect(getPreviewQuality(taskList), getHeaders(), respHeaders); + return OkHttp.getRedirectLocation(respHeaders); } catch (Exception e) { e.printStackTrace(); return ""; @@ -269,8 +269,8 @@ public class Ali { String json = post("v2/file/get_share_link_download_url", body, shareToken); String url = new JSONObject(json).optString("download_url"); Map> respHeaders = new HashMap<>(); - OkHttpUtil.stringNoRedirect(url, getHeaders(), respHeaders); - return OkHttpUtil.getRedirectLocation(respHeaders); + OkHttp.stringNoRedirect(url, getHeaders(), respHeaders); + return OkHttp.getRedirectLocation(respHeaders); } catch (Exception e) { e.printStackTrace(); return ""; @@ -281,7 +281,7 @@ public class Ali { String shareId = params.get("share_id"); String shareToken = params.get("share_token"); String fileId = params.get("file_id"); - String text = OkHttpUtil.string(getDownloadUrl(shareId, shareToken, fileId), getHeaders(shareToken)); + String text = OkHttp.string(getDownloadUrl(shareId, shareToken, fileId), getHeaders(shareToken)); Object[] result = new Object[3]; result[0] = 200; result[1] = "application/octet-stream"; @@ -297,14 +297,14 @@ public class Ali { private void getQRCode() { HashMap headers = new HashMap<>(); headers.put("User-Agent", Misc.CHROME); - Data data = Data.objectFrom(OkHttpUtil.string("https://easy-token.cooluc.com/qr", headers)); + Data data = Data.objectFrom(OkHttp.string("https://easy-token.cooluc.com/qr", headers)); if (data != null) Init.run(() -> showCode(data)); 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(OkHttpUtil.postJson("https://easy-token.cooluc.com/ck", params.toString(), headers)); + Data result = Data.objectFrom(OkHttp.postJson("https://easy-token.cooluc.com/ck", params.toString(), headers)); if (result.hasToken()) setToken(result.getData().getRefreshToken()); }, 1, 1, TimeUnit.SECONDS); } 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 2061fd7a..74b0f70a 100644 --- a/app/src/main/java/com/github/catvod/spider/Bili.java +++ b/app/src/main/java/com/github/catvod/spider/Bili.java @@ -7,7 +7,7 @@ import com.github.catvod.bean.Class; import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; -import com.github.catvod.net.OkHttpUtil; +import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Misc; import com.github.catvod.utils.Trans; @@ -32,7 +32,7 @@ public class Bili extends Spider { private String getCookie(String cookie) { if (TextUtils.isEmpty(cookie)) return "buvid3=84B0395D-C9F2-C490-E92E-A09AB48FE26E71636infoc"; - if (cookie.startsWith("http")) return OkHttpUtil.string(cookie).replace("\n", ""); + if (cookie.startsWith("http")) return OkHttp.string(cookie).replace("\n", ""); return cookie; } @@ -43,7 +43,7 @@ public class Bili extends Spider { } private void fetchExt() { - String result = OkHttpUtil.string(extend); + String result = OkHttp.string(extend); if (!TextUtils.isEmpty(result)) extend = result; } @@ -82,7 +82,7 @@ public class Bili extends Spider { String duration = extend.containsKey("duration") ? extend.get("duration") : "0"; if (extend.containsKey("tid")) tid = tid + " " + extend.get("tid"); String url = "https://api.bilibili.com/x/web-interface/search/type?search_type=video&keyword=" + URLEncoder.encode(tid) + "&duration=" + duration + "&page=" + pg; - JSONObject resp = new JSONObject(OkHttpUtil.string(url, header)); + JSONObject resp = new JSONObject(OkHttp.string(url, header)); JSONArray result = resp.getJSONObject("data").getJSONArray("result"); List list = new ArrayList<>(); for (int i = 0; i < result.length(); ++i) { @@ -102,10 +102,10 @@ public class Bili extends Spider { public String detailContent(List ids) throws Exception { String bvid = ids.get(0); String bvid2aidUrl = "https://api.bilibili.com/x/web-interface/archive/stat?bvid=" + bvid; - JSONObject bvid2aidResp = new JSONObject(OkHttpUtil.string(bvid2aidUrl, header)); + JSONObject bvid2aidResp = new JSONObject(OkHttp.string(bvid2aidUrl, header)); String aid = bvid2aidResp.getJSONObject("data").getLong("aid") + ""; String detailUrl = "https://api.bilibili.com/x/web-interface/view?aid=" + aid; - JSONObject detailResp = new JSONObject(OkHttpUtil.string(detailUrl, header)); + JSONObject detailResp = new JSONObject(OkHttp.string(detailUrl, header)); JSONObject detailData = detailResp.getJSONObject("data"); List playlist = new ArrayList<>(); JSONArray pages = detailData.getJSONArray("pages"); @@ -137,7 +137,7 @@ public class Bili extends Spider { String aid = ids[0]; String cid = ids[1]; String url = "https://api.bilibili.com/x/player/playurl?avid=" + aid + "&cid=" + cid + "&qn=120&fourk=1"; - JSONObject resp = new JSONObject(OkHttpUtil.string(url, header)); + JSONObject resp = new JSONObject(OkHttp.string(url, header)); url = resp.getJSONObject("data").getJSONArray("durl").getJSONObject(0).getString("url"); return Result.get().url(url).header(header).string(); } 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 2687d628..b2f06fb9 100644 --- a/app/src/main/java/com/github/catvod/spider/Dm84.java +++ b/app/src/main/java/com/github/catvod/spider/Dm84.java @@ -7,7 +7,7 @@ import com.github.catvod.bean.Filter; import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; -import com.github.catvod.net.OkHttpUtil; +import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Misc; import com.github.catvod.utils.Trans; @@ -56,7 +56,7 @@ public class Dm84 extends Spider { List list = new ArrayList<>(); List classes = new ArrayList<>(); LinkedHashMap> filters = new LinkedHashMap<>(); - Document doc = Jsoup.parse(OkHttpUtil.string(siteUrl, getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(siteUrl, getHeaders())); for (Element element : doc.select("ul.nav_row > li > a")) { if (element.attr("href").startsWith("/list")) { String id = element.attr("href").split("-")[1].substring(0, 1); @@ -65,7 +65,7 @@ public class Dm84 extends Spider { } } for (Class item : classes) { - doc = Jsoup.parse(OkHttpUtil.string(siteUrl + "/list-" + item.getTypeId() + ".html", getHeaders())); + doc = Jsoup.parse(OkHttp.string(siteUrl + "/list-" + item.getTypeId() + ".html", getHeaders())); Elements elements = doc.select("ul.list_filter > li > div"); List array = new ArrayList<>(); array.add(getFilter("類型", "type", elements.get(0).select("a").eachText())); @@ -94,7 +94,7 @@ public class Dm84 extends Spider { String type = URLEncoder.encode(extend.get("type")); String year = extend.get("year"); String target = siteUrl + String.format("/show-%s--%s-%s--%s-%s.html", tid, by, type, year, pg); - Document doc = Jsoup.parse(OkHttpUtil.string(target, getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(target, getHeaders())); for (Element element : doc.select("div.item")) { String img = element.select("a.cover").attr("data-bg"); String url = element.select("a.title").attr("href"); @@ -108,7 +108,7 @@ public class Dm84 extends Spider { @Override public String detailContent(List ids) { - Document doc = Jsoup.parse(OkHttpUtil.string(siteUrl.concat("/v/").concat(ids.get(0)), getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(siteUrl.concat("/v/").concat(ids.get(0)), getHeaders())); String name = doc.select("h1.v_title").text(); String remarks = doc.select("p.v_desc > span.desc").text(); String img = doc.select("meta[property=og:image]").attr("content"); @@ -158,7 +158,7 @@ public class Dm84 extends Spider { public String searchContent(String key, boolean quick) { List list = new ArrayList<>(); String target = siteUrl.concat("/s----------.html?wd=").concat(key); - Document doc = Jsoup.parse(OkHttpUtil.string(target, getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(target, getHeaders())); for (Element element : doc.select("div.item")) { String img = element.select("a.cover").attr("data-bg"); String url = element.select("a.title").attr("href"); @@ -172,7 +172,7 @@ public class Dm84 extends Spider { @Override public String playerContent(String flag, String id, List vipFlags) { - Document doc = Jsoup.parse(OkHttpUtil.string(siteUrl.concat(id), getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(siteUrl.concat(id), getHeaders())); String url = doc.select("iframe").attr("src"); return Result.get().url(url).parse().header(getHeaders()).string(); } 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 58519f10..b673b4ac 100644 --- a/app/src/main/java/com/github/catvod/spider/Doll.java +++ b/app/src/main/java/com/github/catvod/spider/Doll.java @@ -8,7 +8,7 @@ import com.github.catvod.bean.Class; import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; -import com.github.catvod.net.OkHttpUtil; +import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Misc; import org.jsoup.Jsoup; @@ -27,7 +27,7 @@ public class Doll extends Spider { public String homeContent(boolean filter) throws Exception { List classes = new ArrayList<>(); List list = new ArrayList<>(); - Document doc = Jsoup.parse(OkHttpUtil.string(url)); + Document doc = Jsoup.parse(OkHttp.string(url)); for (Element a : doc.select("ul#side-menu").get(0).select("li > a")) { String typeName = a.text(); String typeId = a.attr("href").replace(url, ""); @@ -47,7 +47,7 @@ public class Doll extends Spider { public String categoryContent(String tid, String pg, boolean filter, HashMap extend) throws Exception { List list = new ArrayList<>(); String target = pg.equals("1") ? url + tid : url + tid + "/" + pg + ".html"; - Document doc = Jsoup.parse(OkHttpUtil.string(target)); + Document doc = Jsoup.parse(OkHttp.string(target)); for (Element div : doc.select("div.video-detail")) { String id = div.select("h3.video-title > a").attr("href").replace(url, ""); String name = div.select("h3.video-title > a").text(); @@ -60,7 +60,7 @@ public class Doll extends Spider { @Override public String detailContent(List ids) throws Exception { - Document doc = Jsoup.parse(OkHttpUtil.string(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(); 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 2143095c..9d97c1b8 100644 --- a/app/src/main/java/com/github/catvod/spider/Eighteen.java +++ b/app/src/main/java/com/github/catvod/spider/Eighteen.java @@ -8,7 +8,7 @@ import com.github.catvod.bean.Class; import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; -import com.github.catvod.net.OkHttpUtil; +import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Misc; import org.jsoup.Jsoup; @@ -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(OkHttpUtil.string(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(OkHttpUtil.string(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(OkHttpUtil.string(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"); @@ -82,7 +82,7 @@ public class Eighteen extends Spider { params.put("search_keyword", key); params.put("search_type", "fc"); params.put("op", "search"); - String res = OkHttpUtil.post(url + "searchform_search/all/index.html", params); + String res = OkHttp.post(url + "searchform_search/all/index.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 35f22c6b..5068e763 100644 --- a/app/src/main/java/com/github/catvod/spider/Hanime.java +++ b/app/src/main/java/com/github/catvod/spider/Hanime.java @@ -5,7 +5,7 @@ import com.github.catvod.bean.Filter; import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; -import com.github.catvod.net.OkHttpUtil; +import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Misc; import org.jsoup.Jsoup; @@ -42,10 +42,10 @@ public class Hanime extends Spider { List list = new ArrayList<>(); List classes = new ArrayList<>(); LinkedHashMap> filters = new LinkedHashMap<>(); - Document doc1 = Jsoup.parse(OkHttpUtil.string(siteUrl.concat("/search?genre=裏番"), getHeaders())); + Document doc1 = Jsoup.parse(OkHttp.string(siteUrl.concat("/search?genre=裏番"), getHeaders())); List sorts = doc1.select("div.hentai-sort-options").eachText(); List years = doc1.getElementById("year").select("option").eachAttr("value"); - Document doc2 = Jsoup.parse(OkHttpUtil.string(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漫畫") || text.equals("我的清單")) continue; @@ -74,7 +74,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(OkHttpUtil.string(target, getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(target, getHeaders())); for (Element element : doc.select("div.col-xs-6")) { String pic = element.select("div > a > div >img").get(1).attr("src"); String url = element.select("div > div > div > a").attr("href"); @@ -99,7 +99,7 @@ public class Hanime extends Spider { @Override public String detailContent(List ids) throws Exception { - Document doc = Jsoup.parse(OkHttpUtil.string(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(); String content = doc.getElementById("caption").text(); String pic = doc.select("meta[property=og:image]").attr("content"); @@ -118,7 +118,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(OkHttpUtil.string(target, getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(target, getHeaders())); for (Element element : doc.select("div.col-xs-6")) { String pic = element.select("div > a > div >img").get(1).attr("src"); String url = element.select("div > div > div > a").attr("href"); 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 2bfce761..7667f367 100644 --- a/app/src/main/java/com/github/catvod/spider/Jable.java +++ b/app/src/main/java/com/github/catvod/spider/Jable.java @@ -4,7 +4,7 @@ import com.github.catvod.bean.Class; import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; -import com.github.catvod.net.OkHttpUtil; +import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Misc; import org.jsoup.Jsoup; @@ -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(OkHttpUtil.string(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(OkHttpUtil.string(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(OkHttpUtil.string(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(OkHttpUtil.string(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(OkHttpUtil.string(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"); 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 dc416d23..266a46ac 100644 --- a/app/src/main/java/com/github/catvod/spider/Miss.java +++ b/app/src/main/java/com/github/catvod/spider/Miss.java @@ -7,7 +7,7 @@ import com.github.catvod.bean.Filter; import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; -import com.github.catvod.net.OkHttpUtil; +import com.github.catvod.net.OkHttp; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; @@ -29,7 +29,7 @@ public class Miss extends Spider { List classes = new ArrayList<>(); LinkedHashMap> filters = new LinkedHashMap<>(); List typeIds = Arrays.asList("chinese-subtitle", "new", "release", "uncensored-leak", "siro", "luxu", "gana", "maan", "scute", "ara", "uncensored-leak", "fc2", "heyzo", "tokyohot", "1pondo", "caribbeancom", "caribbeancompr", "10musume", "pacopacomama", "gachinco", "xxxav", "marriedslash", "naughty4610", "naughty0930", "madou", "twav"); - Document doc = Jsoup.parse(OkHttpUtil.string(url)); + Document doc = Jsoup.parse(OkHttp.string(url)); for (Element a : doc.select("nav").select("a")) { String typeName = a.text(); 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(OkHttpUtil.string(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(); @@ -69,7 +69,7 @@ public class Miss extends Spider { @Override public String detailContent(List ids) throws Exception { - Document doc = Jsoup.parse(OkHttpUtil.string(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(); @@ -84,7 +84,7 @@ public class Miss extends Spider { @Override public String searchContent(String key, boolean quick) throws Exception { List list = new ArrayList<>(); - Document doc = Jsoup.parse(OkHttpUtil.string(url + "search/" + key)); + Document doc = Jsoup.parse(OkHttp.string(url + "search/" + key)); 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/PanSou.java b/app/src/main/java/com/github/catvod/spider/PanSou.java index 3bf157f5..7aa0d415 100644 --- a/app/src/main/java/com/github/catvod/spider/PanSou.java +++ b/app/src/main/java/com/github/catvod/spider/PanSou.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.net.OkHttpUtil; +import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Misc; import org.jsoup.Jsoup; @@ -44,8 +44,8 @@ public class PanSou extends Spider { public String detailContent(List ids) throws Exception { String url = siteUrl + ids.get(0).replace("/s/", "/cv/"); Map> respHeaders = new HashMap<>(); - OkHttpUtil.stringNoRedirect(url, getHeaders(ids.get(0)), respHeaders); - url = OkHttpUtil.getRedirectLocation(respHeaders); + OkHttp.stringNoRedirect(url, getHeaders(ids.get(0)), respHeaders); + url = OkHttp.getRedirectLocation(respHeaders); return ali.detailContent(Arrays.asList(url)); } @@ -59,7 +59,7 @@ public class PanSou extends Spider { String typeId = entry.getKey(); String typeName = entry.getValue(); String url = siteUrl + "/search?k=" + URLEncoder.encode(key) + "&t=" + typeId; - Elements items = Jsoup.parse(OkHttpUtil.string(url)).select("van-row > a"); + Elements items = Jsoup.parse(OkHttp.string(url)).select("van-row > a"); for (Element item : items) { String title = item.selectFirst("template").text().trim(); if (!title.contains(key)) continue; 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 6035f944..d2eb40bb 100644 --- a/app/src/main/java/com/github/catvod/spider/Paper.java +++ b/app/src/main/java/com/github/catvod/spider/Paper.java @@ -8,7 +8,7 @@ import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; import com.github.catvod.bean.paper.Data; import com.github.catvod.crawler.Spider; -import com.github.catvod.net.OkHttpUtil; +import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Misc; import org.json.JSONObject; @@ -48,7 +48,7 @@ public class Paper extends Spider { @Override public String homeContent(boolean filter) { - Document doc = Jsoup.parse(OkHttpUtil.string(url, getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(url, getHeaders())); Elements trs = doc.select("table.tableizer-table > tbody > tr"); LinkedHashMap> filters = new LinkedHashMap<>(); List classes = new ArrayList<>(); @@ -72,7 +72,7 @@ public class Paper extends Spider { @Override public String homeVideoContent() throws Exception { List list = new ArrayList<>(); - JSONObject homeData = new JSONObject(OkHttpUtil.string(url + "home.json", getHeaders())); + JSONObject homeData = new JSONObject(OkHttp.string(url + "home.json", getHeaders())); List items = Data.arrayFrom(homeData.getJSONObject("info").getJSONArray("new").toString()); for (Data item : items) if (types.contains(item.getCat())) list.add(item.getVod()); return Result.string(list); @@ -86,7 +86,7 @@ public class Paper extends Spider { params.put("action", "viewcat"); params.put("cat", type); params.put("num", pg); - String result = OkHttpUtil.post(api, params, getHeaders()); + String result = OkHttp.post(api, params, getHeaders()); for (Data item : Data.arrayFrom(result)) list.add(item.getVod()); return Result.string(list); } @@ -102,7 +102,7 @@ public class Paper extends Spider { Map params = new HashMap<>(); params.put("action", "search"); params.put("keyword", key); - String result = OkHttpUtil.post(api, params, getHeaders()); + String result = OkHttp.post(api, params, getHeaders()); for (Data item : Data.arrayFrom(result)) if (types.contains(item.getCat()) && item.getTitle().contains(key)) list.add(item.getVod()); return Result.string(list); } 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 9a3e016d..123b639a 100644 --- a/app/src/main/java/com/github/catvod/spider/Proxy.java +++ b/app/src/main/java/com/github/catvod/spider/Proxy.java @@ -2,7 +2,7 @@ package com.github.catvod.spider; import com.github.catvod.crawler.Spider; import com.github.catvod.crawler.SpiderDebug; -import com.github.catvod.net.OkHttpUtil; +import com.github.catvod.net.OkHttp; import java.io.ByteArrayInputStream; import java.io.UnsupportedEncodingException; @@ -28,7 +28,7 @@ public class Proxy extends Spider { if (Proxy.port > 0) return; int port = 9978; while (port < 10000) { - String resp = OkHttpUtil.string("http://127.0.0.1:" + port + "/proxy?do=ck", null); + String resp = OkHttp.string("http://127.0.0.1:" + port + "/proxy?do=ck", null); if (resp.equals("ok")) { SpiderDebug.log("Found local server port " + port); Proxy.port = port; 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 d052abf3..07994921 100644 --- a/app/src/main/java/com/github/catvod/spider/Supjav.java +++ b/app/src/main/java/com/github/catvod/spider/Supjav.java @@ -7,7 +7,7 @@ import com.github.catvod.bean.Class; import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; -import com.github.catvod.net.OkHttpUtil; +import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Misc; import org.jsoup.Jsoup; @@ -42,7 +42,7 @@ public class Supjav extends Spider { public String homeContent(boolean filter) { List list = new ArrayList<>(); List classes = new ArrayList<>(); - Document doc = Jsoup.parse(OkHttpUtil.string(siteUrl, getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(siteUrl, getHeaders())); for (Element element : doc.select("ul.nav > li > a")) { String href = element.attr("href"); if (href.split("/").length < 5) continue; @@ -65,7 +65,7 @@ public class Supjav extends Spider { @Override public String categoryContent(String tid, String pg, boolean filter, HashMap extend) { List list = new ArrayList<>(); - Document doc = Jsoup.parse(OkHttpUtil.string(siteUrl + tid + "/page/" + pg, getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(siteUrl + tid + "/page/" + pg, getHeaders())); for (Element element : doc.select("div.post")) { String pic = element.select("img").attr("data-original"); String url = element.select("a").attr("href"); @@ -78,7 +78,7 @@ public class Supjav extends Spider { @Override public String detailContent(List ids) { - Document doc = Jsoup.parse(OkHttpUtil.string(siteUrl.concat(ids.get(0)), getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(siteUrl.concat(ids.get(0)), getHeaders())); String name = doc.select("div.post-meta > img").attr("alt"); String img = doc.select("div.post-meta > img").attr("src"); String type = doc.select("p.cat > a").text(); @@ -119,7 +119,7 @@ public class Supjav extends Spider { @Override public String searchContent(String key, boolean quick) { List list = new ArrayList<>(); - Document doc = Jsoup.parse(OkHttpUtil.string(siteUrl.concat("?s=").concat(URLEncoder.encode(key)), getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(siteUrl.concat("?s=").concat(URLEncoder.encode(key)), getHeaders())); for (Element element : doc.select("div.post")) { String pic = element.select("img").attr("data-original"); String url = element.select("a").attr("href"); @@ -133,8 +133,8 @@ public class Supjav extends Spider { @Override public String playerContent(String flag, String id, List vipFlags) { Map> respHeaders = new HashMap<>(); - OkHttpUtil.stringNoRedirect(playUrl + "supjav.php?c=" + new StringBuilder(id).reverse(), getHeaders(playUrl), respHeaders); - String redirect = OkHttpUtil.getRedirectLocation(respHeaders); + OkHttp.stringNoRedirect(playUrl + "supjav.php?c=" + new StringBuilder(id).reverse(), getHeaders(playUrl), respHeaders); + String redirect = OkHttp.getRedirectLocation(respHeaders); switch (flag) { case "TV": return parseTV(redirect); @@ -148,20 +148,20 @@ public class Supjav extends Spider { } private String parseTV(String redirect) { - String data = OkHttpUtil.string(redirect, getHeaders(playUrl)); + String data = OkHttp.string(redirect, getHeaders(playUrl)); return Result.get().url(Misc.getVar(data, "urlPlay")).header(getHeaders(redirect)).string(); } private String parseST(String redirect) { Map> respHeaders = new HashMap<>(); - String data = OkHttpUtil.string(redirect, getHeaders(playUrl)); + String data = OkHttp.string(redirect, getHeaders(playUrl)); String robot = Jsoup.parse(data).getElementById("robotlink").text(); robot = robot.substring(0, robot.indexOf("&token=") + 7); for (String text : data.split("&token=")) { if (!text.contains("').substring(")) continue; robot = "https:/" + robot + text.split("'")[0] + "&stream=1"; - OkHttpUtil.stringNoRedirect(robot, getHeaders(redirect), respHeaders); - String url = OkHttpUtil.getRedirectLocation(respHeaders); + OkHttp.stringNoRedirect(robot, getHeaders(redirect), respHeaders); + String url = OkHttp.getRedirectLocation(respHeaders); return Result.get().url(url).header(getHeaders(redirect)).string(); } return ""; @@ -170,13 +170,13 @@ public class Supjav extends Spider { private String parseDS(String redirect) { String host = "https://" + Uri.parse(redirect).getHost(); Map> respHeaders = new HashMap<>(); - OkHttpUtil.stringNoRedirect(redirect, getHeaders(playUrl), respHeaders); - redirect = host + OkHttpUtil.getRedirectLocation(respHeaders); - String data = OkHttpUtil.string(redirect, getHeaders()); + OkHttp.stringNoRedirect(redirect, getHeaders(playUrl), respHeaders); + redirect = host + OkHttp.getRedirectLocation(respHeaders); + String data = OkHttp.string(redirect, getHeaders()); for (String text : data.split("'")) { if (!text.startsWith("/pass_md5/")) continue; String token = text.split("/")[3]; - String url = OkHttpUtil.string(host + text, getHeaders(redirect)); + String url = OkHttp.string(host + text, getHeaders(redirect)); url = url + getDSRnd() + "?token=" + token + "&expiry=" + System.currentTimeMillis(); return Result.get().url(url).header(getHeaders(redirect)).string(); } 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 228a6d9c..d604dde8 100644 --- a/app/src/main/java/com/github/catvod/spider/UpYun.java +++ b/app/src/main/java/com/github/catvod/spider/UpYun.java @@ -8,7 +8,7 @@ import com.github.catvod.bean.Vod; 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.OkHttpUtil; +import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Misc; import java.net.URLEncoder; @@ -44,7 +44,7 @@ public class UpYun extends Spider { @Override public String searchContent(String key, boolean quick) { String url = apiUrl + "search?keyword=" + URLEncoder.encode(key) + "&page=1&s_type=2"; - String res = new String(Base64.decode(OkHttpUtil.string(url, getHeaders()), Base64.DEFAULT)); + String res = new String(Base64.decode(OkHttp.string(url, getHeaders()), Base64.DEFAULT)); List list = new ArrayList<>(); for (Item item : Data.objectFrom(res).getResult().getItems()) if (item.isAli()) list.add(item.getVod()); return Result.string(list); 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 895f4f8b..80b56d24 100644 --- a/app/src/main/java/com/github/catvod/spider/XPath.java +++ b/app/src/main/java/com/github/catvod/spider/XPath.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.crawler.SpiderDebug; -import com.github.catvod.net.OkHttpUtil; +import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Misc; import com.github.catvod.utils.Trans; import com.github.catvod.xpath.XPathRule; @@ -37,7 +37,7 @@ public class XPath extends Spider { private void fetchRule(String ext) { if (ext.startsWith("http")) { - String json = OkHttpUtil.string(ext); + String json = OkHttp.string(ext); rule = XPathRule.fromJson(json); loadRuleExt(json); } else { @@ -325,6 +325,6 @@ public class XPath extends Spider { protected String fetch(String webUrl) { SpiderDebug.log(webUrl); - return OkHttpUtil.string(webUrl, getHeaders()); + return OkHttp.string(webUrl, getHeaders()); } } 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 dce6ffeb..0827f016 100644 --- a/app/src/main/java/com/github/catvod/spider/Ying.java +++ b/app/src/main/java/com/github/catvod/spider/Ying.java @@ -7,7 +7,7 @@ import com.github.catvod.bean.Filter; import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; -import com.github.catvod.net.OkHttpUtil; +import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Misc; import com.github.catvod.utils.Trans; @@ -61,7 +61,7 @@ public class Ying extends Spider { List classes = new ArrayList<>(); List array = new ArrayList<>(); LinkedHashMap> filters = new LinkedHashMap<>(); - Document doc1 = Jsoup.parse(OkHttpUtil.string(filterUrl, getHeaders())); + Document doc1 = Jsoup.parse(OkHttp.string(filterUrl, getHeaders())); String[] split = doc1.text().split("_labels = "); for (int i = 0; i < split.length; i++) { if (split[i].startsWith("[")) { @@ -71,7 +71,7 @@ public class Ying extends Spider { } } for (Class type : classes) filters.put(type.getTypeId(), array); - Document doc2 = Jsoup.parse(OkHttpUtil.string(listUrl, getHeaders())); + Document doc2 = Jsoup.parse(OkHttp.string(listUrl, getHeaders())); for (Element element : doc2.select("div.lpic > ul > li")) { String id = element.select("a").attr("href").split("/")[2]; String name = element.select("h2").text(); @@ -97,7 +97,7 @@ public class Ying extends Spider { checkExtend(sb, extend, "label"); checkExtend(sb, extend, "resource"); checkExtend(sb, extend, "order"); - Document doc = Jsoup.parse(OkHttpUtil.string(listUrl.concat(sb.toString()), getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(listUrl.concat(sb.toString()), getHeaders())); for (Element element : doc.select("div.lpic > ul > li")) { String id = element.select("a").attr("href").split("/")[2]; String name = element.select("h2").text(); @@ -111,7 +111,7 @@ public class Ying extends Spider { @Override public String detailContent(List ids) { - Document doc = Jsoup.parse(OkHttpUtil.string(showUrl.concat(ids.get(0)), getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(showUrl.concat(ids.get(0)), getHeaders())); String name = doc.select("div.rate > h1").text(); String pic = "https:".concat(doc.select("div.thumb > img").attr("src")); String content = doc.select("div.info").text(); @@ -153,7 +153,7 @@ public class Ying extends Spider { public String searchContent(String key, boolean quick) { List list = new ArrayList<>(); String target = siteUrl + "/s_all?ex=1&kw=" + URLEncoder.encode(key); - Document doc = Jsoup.parse(OkHttpUtil.string(target, getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(target, getHeaders())); for (Element element : doc.select("div.lpic > ul > li")) { String id = element.select("a").attr("href").split("/")[2]; String name = element.select("h2").text(); 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 fd5cf0d9..e7088238 100644 --- a/app/src/main/java/com/github/catvod/spider/Ysj.java +++ b/app/src/main/java/com/github/catvod/spider/Ysj.java @@ -7,7 +7,7 @@ import com.github.catvod.bean.Filter; import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; -import com.github.catvod.net.OkHttpUtil; +import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Misc; import com.github.catvod.utils.Trans; @@ -52,7 +52,7 @@ public class Ysj extends Spider { List classes = new ArrayList<>(); List array = new ArrayList<>(); LinkedHashMap> filters = new LinkedHashMap<>(); - Document doc = Jsoup.parse(OkHttpUtil.string(homeUrl, getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(homeUrl, getHeaders())); array.add(getFilter("地區", "area", doc.select("div#hl03").select("a").eachText())); array.add(getFilter("年份", "year", doc.select("div#hl04").select("a").eachText())); array.add(getFilter("語言", "lang", doc.select("div#hl05").select("a").eachText())); @@ -85,7 +85,7 @@ public class Ysj extends Spider { if (extend.containsKey("year")) sb.append("/year/").append(extend.get("year")); if (!pg.equals("1")) sb.append("/page/").append(pg); sb.append(".html"); - Document doc = Jsoup.parse(OkHttpUtil.string(sb.toString(), getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(sb.toString(), getHeaders())); List list = new ArrayList<>(); for (Element element : doc.select("li.vodlist_item")) { String id = element.select("a").attr("href").split("/")[5]; @@ -99,7 +99,7 @@ public class Ysj extends Spider { @Override public String detailContent(List ids) { - Document doc = Jsoup.parse(OkHttpUtil.string(detailUrl.concat(ids.get(0)), getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(detailUrl.concat(ids.get(0)), getHeaders())); String name = doc.select("h2.title").text(); String pic = siteUrl + doc.select("a.vodlist_thumb").attr("data-original"); String year = doc.select("li.data").get(0).select("a").get(0).text(); @@ -148,7 +148,7 @@ public class Ysj extends Spider { public String searchContent(String key, boolean quick) { List list = new ArrayList<>(); String target = searchUrl.concat("?wd=").concat(key).concat("&submit="); - Document doc = Jsoup.parse(OkHttpUtil.string(target, getHeaders())); + Document doc = Jsoup.parse(OkHttp.string(target, getHeaders())); if (doc.html().contains("很抱歉,暂无相关视频")) return Result.string(list); for (Element element : doc.select("li.searchlist_item")) { String id = element.select("a").attr("href").split("/")[5]; 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 50dd0b07..09e5ab5a 100644 --- a/app/src/main/java/com/github/catvod/spider/Zhaozy.java +++ b/app/src/main/java/com/github/catvod/spider/Zhaozy.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.net.OkHttpUtil; +import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Misc; import org.jsoup.Jsoup; @@ -44,7 +44,7 @@ public class Zhaozy extends Spider { headers.put("Referer", siteUrl + "login.html"); headers.put("Origin", siteUrl); Map> resp = new HashMap<>(); - OkHttpUtil.post(siteUrl + "logiu.html", params, headers, resp); + OkHttp.post(siteUrl + "logiu.html", params, headers, resp); StringBuilder sb = new StringBuilder(); for (String item : resp.get("set-cookie")) sb.append(item.split(";")[0]).append(";"); return sb.toString(); @@ -57,7 +57,7 @@ public class Zhaozy extends Spider { @Override public String detailContent(List ids) throws Exception { - Matcher matcher = regexAli.matcher(OkHttpUtil.string(siteUrl + ids.get(0), getHeader())); + Matcher matcher = regexAli.matcher(OkHttp.string(siteUrl + ids.get(0), getHeader())); if (!matcher.find()) return ""; ids.set(0, matcher.group(1)); return ali.detailContent(ids); @@ -71,7 +71,7 @@ public class Zhaozy extends Spider { @Override public String searchContent(String key, boolean quick) throws Exception { String url = siteUrl + "so?filename=" + URLEncoder.encode(key); - Document doc = Jsoup.parse(OkHttpUtil.string(url, getHeader())); + Document doc = Jsoup.parse(OkHttp.string(url, getHeader())); List list = new ArrayList<>(); for (Element element : doc.select("div.li_con div.news_text")) { String href = element.select("div.news_text a").attr("href"); diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index 1a968ee6..41fc0ef1 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 7cd37b80..3c31e930 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -8329684ff36b27bdf5970adf458e8d1e +e469b846313122745bf9d82fbc545353