Update Anime1

This commit is contained in:
FongMi 2022-08-23 13:34:31 +08:00
parent 18dc5446d5
commit 7749cc9348
2 changed files with 55 additions and 76 deletions

View File

@ -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<String, String> paramsMap, Map<String, String> headerMap, Map<String, List<String>> respHeaderMap) {
return string(client, url, tag, paramsMap, headerMap, respHeaderMap, OkHttpUtil.METHOD_GET);
}
public static String string(OkHttpClient client, String url, String tag, Map<String, String> paramsMap, Map<String, String> headerMap, Map<String, List<String>> 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<String, String> headerMap, Map<String, List<String>> 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<String, String> headerMap) {
return string(defaultClient(), url, null, null, headerMap, null);
return string(url, headerMap, null);
}
public static String string(String url, Map<String, String> headerMap, Map<String, List<String>> respHeaderMap) {
return string(defaultClient(), url, null, null, headerMap, respHeaderMap);
return string(url, null, headerMap, respHeaderMap);
}
public static String string(String url, String tag, Map<String, String> headerMap) {
return string(defaultClient(), url, tag, null, headerMap, null);
public static String string(String url, Map<String, String> paramsMap, Map<String, String> headerMap, Map<String, List<String>> 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<String, String> paramsMap, OKCallBack callBack) {
get(client, url, paramsMap, null, callBack);
public static void get(String url, Map<String, String> paramsMap, OKCallBack callBack) {
get(url, paramsMap, null, callBack);
}
public static void get(OkHttpClient client, String url, Map<String, String> paramsMap, Map<String, String> headerMap, OKCallBack callBack) {
new OKRequest(METHOD_GET, url, paramsMap, headerMap, callBack).execute(client);
public static void get(String url, Map<String, String> paramsMap, Map<String, String> 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<String, String> paramsMap, Map<String, String> 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<String, String> paramsMap, Map<String, String> headerMap, OKCallBack callback) {
new OKRequest(METHOD_POST, url, paramsMap, headerMap, callback).execute(defaultClient());
public static String post(String url, Map<String, String> paramsMap, Map<String, String> headerMap, Map<String, List<String>> respHeaderMap) {
return string(defaultClient(), url, null, paramsMap, headerMap, respHeaderMap, METHOD_POST);
}
public static String postJson(String url, String jsonStr, Map<String, String> headerMap) {
public static String post(String url, String jsonStr, Map<String, String> 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<String, List<String>> 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;
}
}

View File

@ -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<String> vipFlags) {
try {
cookies = "";
authority = "";
String url = "https://v.anime1.me/api";
Result result = new Result();
String jsonreq = URLDecoder.decode(id, "UTF-8");
HashMap<String, String> reqpayload = new HashMap<>();
reqpayload.put("d", jsonreq);
OkHttpUtil.post(url, reqpayload, getHeaders2(), new OKCallBack<String>() {
@Override
protected String onParseResponse(Call call, Response response) {
try {
Map<String, List<String>> 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<String, List<String>> 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 {