Update Anime1
This commit is contained in:
parent
18dc5446d5
commit
7749cc9348
|
|
@ -19,7 +19,6 @@ public class OkHttpUtil {
|
||||||
|
|
||||||
private static final Object lockO = new Object();
|
private static final Object lockO = new Object();
|
||||||
private static OkHttpClient defaultClient = null;
|
private static OkHttpClient defaultClient = null;
|
||||||
private static OkHttpClient noRedirectClient = null;
|
|
||||||
private static final int DEFAULT_TIMEOUT = 15;
|
private static final int DEFAULT_TIMEOUT = 15;
|
||||||
|
|
||||||
public static OkHttpClient defaultClient() {
|
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() {
|
public static Dns safeDns() {
|
||||||
try {
|
try {
|
||||||
return (Dns) Spider.class.getMethod("safeDns").invoke(null);
|
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) {
|
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() {
|
OKCallBack.OKCallBackString callback = new OKCallBack.OKCallBackString() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -75,36 +60,32 @@ public class OkHttpUtil {
|
||||||
return callback.getResult();
|
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) {
|
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) {
|
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) {
|
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) {
|
public static String string(String url, Map<String, String> paramsMap, Map<String, String> headerMap, Map<String, List<String>> respHeaderMap) {
|
||||||
return string(defaultClient(), url, tag, null, headerMap, null);
|
return string(defaultClient(), url, null, paramsMap, headerMap, respHeaderMap, OkHttpUtil.METHOD_GET);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void get(OkHttpClient client, String url, OKCallBack callBack) {
|
public static void get(String url, OKCallBack callBack) {
|
||||||
get(client, url, null, null, callBack);
|
get(url, null, callBack);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void get(OkHttpClient client, String url, Map<String, String> paramsMap, OKCallBack callBack) {
|
public static void get(String url, Map<String, String> paramsMap, OKCallBack callBack) {
|
||||||
get(client, url, paramsMap, null, callBack);
|
get(url, paramsMap, null, callBack);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void get(OkHttpClient client, String url, Map<String, String> paramsMap, Map<String, String> headerMap, OKCallBack callBack) {
|
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(client);
|
new OKRequest(METHOD_GET, url, paramsMap, headerMap, callBack).execute(defaultClient());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String post(String url) {
|
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) {
|
public static String post(String url, Map<String, String> paramsMap, Map<String, String> headerMap) {
|
||||||
OKCallBack.OKCallBackString callback = new OKCallBack.OKCallBackString();
|
return post(url, paramsMap, headerMap, null);
|
||||||
new OKRequest(METHOD_POST, url, paramsMap, headerMap, callback).execute(defaultClient());
|
|
||||||
return callback.getResult();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void post(String url, Map<String, String> paramsMap, Map<String, String> headerMap, OKCallBack callback) {
|
public static String post(String url, Map<String, String> paramsMap, Map<String, String> headerMap, Map<String, List<String>> respHeaderMap) {
|
||||||
new OKRequest(METHOD_POST, url, paramsMap, headerMap, callback).execute(defaultClient());
|
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();
|
OKCallBack.OKCallBackString callback = new OKCallBack.OKCallBackString();
|
||||||
new OKRequest(METHOD_POST, url, jsonStr, headerMap, callback).execute(defaultClient());
|
new OKRequest(METHOD_POST, url, jsonStr, headerMap, callback).execute(defaultClient());
|
||||||
return callback.getResult();
|
return callback.getResult();
|
||||||
|
|
@ -148,11 +127,4 @@ public class OkHttpUtil {
|
||||||
public static void cancel(Object tag) {
|
public static void cancel(Object tag) {
|
||||||
cancel(defaultClient(), 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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ import com.github.catvod.bean.Result;
|
||||||
import com.github.catvod.bean.Vod;
|
import com.github.catvod.bean.Vod;
|
||||||
import com.github.catvod.crawler.Spider;
|
import com.github.catvod.crawler.Spider;
|
||||||
import com.github.catvod.crawler.SpiderDebug;
|
import com.github.catvod.crawler.SpiderDebug;
|
||||||
import com.github.catvod.net.OKCallBack;
|
|
||||||
import com.github.catvod.net.OkHttpUtil;
|
import com.github.catvod.net.OkHttpUtil;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
|
|
||||||
|
|
@ -30,9 +29,6 @@ import java.util.TreeMap;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import okhttp3.Call;
|
|
||||||
import okhttp3.Response;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author 不知名
|
* @author 不知名
|
||||||
*/
|
*/
|
||||||
|
|
@ -308,41 +304,18 @@ public class Anime1 extends Spider {
|
||||||
@Override
|
@Override
|
||||||
public String playerContent(String flag, String id, List<String> vipFlags) {
|
public String playerContent(String flag, String id, List<String> vipFlags) {
|
||||||
try {
|
try {
|
||||||
cookies = "";
|
|
||||||
authority = "";
|
authority = "";
|
||||||
String url = "https://v.anime1.me/api";
|
String url = "https://v.anime1.me/api";
|
||||||
Result result = new Result();
|
Result result = new Result();
|
||||||
String jsonreq = URLDecoder.decode(id, "UTF-8");
|
String jsonreq = URLDecoder.decode(id, "UTF-8");
|
||||||
HashMap<String, String> reqpayload = new HashMap<>();
|
HashMap<String, String> reqpayload = new HashMap<>();
|
||||||
reqpayload.put("d", jsonreq);
|
reqpayload.put("d", jsonreq);
|
||||||
OkHttpUtil.post(url, reqpayload, getHeaders2(), new OKCallBack<String>() {
|
Map<String, List<String>> respHeaderMap = new HashMap<>();
|
||||||
@Override
|
String response = OkHttpUtil.string(url, reqpayload, getHeaders2(), respHeaderMap);
|
||||||
protected String onParseResponse(Call call, Response response) {
|
|
||||||
try {
|
|
||||||
Map<String, List<String>> respHeader = new HashMap<>(response.headers().toMultimap());
|
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
for (int i = 0; i < 3; i++) sb.append(respHeader.get("set-cookie").get(i).split(";")[0]).append(";");
|
for (int i = 0; i < 3; i++) sb.append(respHeaderMap.get("set-cookie").get(i).split(";")[0]).append(";");
|
||||||
cookies = sb.toString();
|
cookies = sb.toString();
|
||||||
return response.body().string();
|
result.setUrl(getVideoUrl(response));
|
||||||
} 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) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
result.setHeader(new Gson().toJson(getHeaders1()));
|
result.setHeader(new Gson().toJson(getHeaders1()));
|
||||||
result.setParse("0");
|
result.setParse("0");
|
||||||
return result.toString();
|
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
|
@Override
|
||||||
public String searchContent(String key, boolean quick) {
|
public String searchContent(String key, boolean quick) {
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue