From 7749cc9348aa229dcc8d8fb2478a836fab96d39f Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 23 Aug 2022 13:34:31 +0800 Subject: [PATCH] Update Anime1 --- .../com/github/catvod/net/OkHttpUtil.java | 58 ++++----------- .../com/github/catvod/spider/wait/Anime1.java | 73 ++++++++++--------- 2 files changed, 55 insertions(+), 76 deletions(-) diff --git a/app/src/main/java/com/github/catvod/net/OkHttpUtil.java b/app/src/main/java/com/github/catvod/net/OkHttpUtil.java index 8223c590..24812c66 100644 --- a/app/src/main/java/com/github/catvod/net/OkHttpUtil.java +++ b/app/src/main/java/com/github/catvod/net/OkHttpUtil.java @@ -19,7 +19,6 @@ public class OkHttpUtil { private static final Object lockO = new Object(); private static OkHttpClient defaultClient = null; - private static OkHttpClient noRedirectClient = null; private static final int DEFAULT_TIMEOUT = 15; public static OkHttpClient defaultClient() { @@ -32,16 +31,6 @@ public class OkHttpUtil { } } - public static OkHttpClient noRedirectClient() { - synchronized (lockO) { - if (noRedirectClient == null) { - OkHttpClient.Builder builder = 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), SSLSocketFactoryCompat.trustAllCert); - noRedirectClient = builder.build(); - } - return noRedirectClient; - } - } - public static Dns safeDns() { try { return (Dns) Spider.class.getMethod("safeDns").invoke(null); @@ -50,10 +39,6 @@ public class OkHttpUtil { } } - public static String string(OkHttpClient client, String url, String tag, Map paramsMap, Map headerMap, Map> respHeaderMap) { - return string(client, url, tag, paramsMap, headerMap, respHeaderMap, OkHttpUtil.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() { @Override @@ -75,36 +60,32 @@ public class OkHttpUtil { return callback.getResult(); } - public static String stringNoRedirect(String url, Map headerMap, Map> respHeaderMap) { - return string(noRedirectClient(), url, null, null, headerMap, respHeaderMap); - } - public static String string(String url) { - return string(defaultClient(), url, null, null, null, null); + return string(url, null); } public static String string(String url, Map headerMap) { - return string(defaultClient(), url, null, null, headerMap, null); + return string(url, headerMap, null); } public static String string(String url, Map headerMap, Map> respHeaderMap) { - return string(defaultClient(), url, null, null, headerMap, respHeaderMap); + return string(url, null, headerMap, respHeaderMap); } - public static String string(String url, String tag, Map headerMap) { - return string(defaultClient(), url, tag, null, headerMap, null); + public static String string(String url, Map paramsMap, Map headerMap, Map> respHeaderMap) { + return string(defaultClient(), url, null, paramsMap, headerMap, respHeaderMap, OkHttpUtil.METHOD_GET); } - public static void get(OkHttpClient client, String url, OKCallBack callBack) { - get(client, url, null, null, callBack); + public static void get(String url, OKCallBack callBack) { + get(url, null, callBack); } - public static void get(OkHttpClient client, String url, Map paramsMap, OKCallBack callBack) { - get(client, url, paramsMap, null, callBack); + public static void get(String url, Map paramsMap, OKCallBack callBack) { + get(url, paramsMap, null, callBack); } - public static void get(OkHttpClient client, String url, Map paramsMap, Map headerMap, OKCallBack callBack) { - new OKRequest(METHOD_GET, url, paramsMap, headerMap, callBack).execute(client); + public static void get(String url, Map paramsMap, Map headerMap, OKCallBack callBack) { + new OKRequest(METHOD_GET, url, paramsMap, headerMap, callBack).execute(defaultClient()); } public static String post(String url) { @@ -116,16 +97,14 @@ public class OkHttpUtil { } public static String post(String url, Map paramsMap, Map headerMap) { - OKCallBack.OKCallBackString callback = new OKCallBack.OKCallBackString(); - new OKRequest(METHOD_POST, url, paramsMap, headerMap, callback).execute(defaultClient()); - return callback.getResult(); + return post(url, paramsMap, headerMap, null); } - public static void post(String url, Map paramsMap, Map headerMap, OKCallBack callback) { - new OKRequest(METHOD_POST, url, paramsMap, headerMap, callback).execute(defaultClient()); + public static String post(String url, Map paramsMap, Map headerMap, Map> respHeaderMap) { + return string(defaultClient(), url, null, paramsMap, headerMap, respHeaderMap, METHOD_POST); } - public static String postJson(String url, String jsonStr, Map headerMap) { + public static String post(String url, String jsonStr, Map headerMap) { OKCallBack.OKCallBackString callback = new OKCallBack.OKCallBackString(); new OKRequest(METHOD_POST, url, jsonStr, headerMap, callback).execute(defaultClient()); return callback.getResult(); @@ -148,11 +127,4 @@ public class OkHttpUtil { public static void cancel(Object tag) { cancel(defaultClient(), tag); } - - public static String getRedirectLocation(Map> headers) { - if (headers == null) return null; - if (headers.containsKey("location")) return headers.get("location").get(0); - if (headers.containsKey("Location")) return headers.get("Location").get(0); - return null; - } } diff --git a/app/src/main/java/com/github/catvod/spider/wait/Anime1.java b/app/src/main/java/com/github/catvod/spider/wait/Anime1.java index 573a6096..9b67c886 100644 --- a/app/src/main/java/com/github/catvod/spider/wait/Anime1.java +++ b/app/src/main/java/com/github/catvod/spider/wait/Anime1.java @@ -7,7 +7,6 @@ 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.OKCallBack; import com.github.catvod.net.OkHttpUtil; import com.google.gson.Gson; @@ -30,9 +29,6 @@ import java.util.TreeMap; import java.util.regex.Matcher; import java.util.regex.Pattern; -import okhttp3.Call; -import okhttp3.Response; - /** * @author 不知名 */ @@ -308,41 +304,18 @@ public class Anime1 extends Spider { @Override public String playerContent(String flag, String id, List vipFlags) { try { - cookies = ""; authority = ""; String url = "https://v.anime1.me/api"; Result result = new Result(); String jsonreq = URLDecoder.decode(id, "UTF-8"); HashMap reqpayload = new HashMap<>(); reqpayload.put("d", jsonreq); - OkHttpUtil.post(url, reqpayload, getHeaders2(), new OKCallBack() { - @Override - protected String onParseResponse(Call call, Response response) { - try { - Map> respHeader = new HashMap<>(response.headers().toMultimap()); - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < 3; i++) sb.append(respHeader.get("set-cookie").get(i).split(";")[0]).append(";"); - cookies = sb.toString(); - return response.body().string(); - } catch (Exception e) { - return ""; - } - } - - @Override - protected void onResponse(String response) { - try { - JSONObject obj = new JSONObject(response); - JSONArray objarray = obj.getJSONArray("s"); - JSONObject obj2 = objarray.getJSONObject(0); - String videolink = obj2.getString("src"); - authority = videolink.split("/")[2]; - videolink = "https:" + videolink; - result.setUrl(videolink); - } catch (Exception ignored) { - } - } - }); + Map> respHeaderMap = new HashMap<>(); + String response = OkHttpUtil.string(url, reqpayload, getHeaders2(), respHeaderMap); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < 3; i++) sb.append(respHeaderMap.get("set-cookie").get(i).split(";")[0]).append(";"); + cookies = sb.toString(); + result.setUrl(getVideoUrl(response)); result.setHeader(new Gson().toJson(getHeaders1())); result.setParse("0"); return result.toString(); @@ -352,6 +325,40 @@ public class Anime1 extends Spider { } } + private String getVideoUrl(String response) throws Exception { + JSONObject obj = new JSONObject(response); + JSONArray array = obj.getJSONArray("s"); + String m3u8url = ""; + String mp4url = ""; + for (int i = 0; i < array.length(); i++) { + JSONObject obj2 = array.getJSONObject(i); + String m3u8chk = obj2.getString("src"); + if (m3u8chk.contains("m3u8")) { + m3u8url = m3u8chk; + } else { + mp4url = m3u8chk; + } + } + String videoUrl; + if (m3u8url.length() > 0) { + authority = m3u8url.split("/")[2]; + videoUrl = "https:" + m3u8url; + String docm3u8 = OkHttpUtil.string(videoUrl, getHeaders1()); + if (docm3u8.contains("1080p.m3u8")) { + videoUrl = videoUrl.replace("playlist", "1080p"); + } else if (docm3u8.contains("720p.m3u8")) { + videoUrl = videoUrl.replace("playlist", "720p"); + } else { + authority = mp4url.split("/")[2]; + videoUrl = "https:" + mp4url; + } + } else { + authority = mp4url.split("/")[2]; + videoUrl = "https:" + mp4url; + } + return videoUrl; + } + @Override public String searchContent(String key, boolean quick) { try {