From 5a4620f49112af362c26461ed8b347714acf69cf Mon Sep 17 00:00:00 2001 From: yangqiang3504 <412594121@qq.com> Date: Thu, 1 Sep 2022 16:35:18 +0800 Subject: [PATCH] add - PushAgent XBiubiu123 --- .../java/com/github/catvod/spider/Bili.java | 52 +------- .../com/github/catvod/spider/Kunyu77.java | 13 +- .../com/github/catvod/spider/PushAgent.java | 111 ++++-------------- 3 files changed, 30 insertions(+), 146 deletions(-) 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 9eb0c9c..0accb46 100644 --- a/app/src/main/java/com/github/catvod/spider/Bili.java +++ b/app/src/main/java/com/github/catvod/spider/Bili.java @@ -2,13 +2,12 @@ package com.github.catvod.spider; import android.content.Context; import android.text.TextUtils; +import android.util.Base64; + import com.github.catvod.crawler.Spider; import com.github.catvod.crawler.SpiderDebug; -import com.github.catvod.utils.okhttp.OKCallBack; import com.github.catvod.utils.okhttp.OkHttpUtil; -import okhttp3.Call; -import okhttp3.Cookie; -import okhttp3.Response; + import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -24,8 +23,6 @@ import java.util.List; public class Bili extends Spider { protected JSONObject ext = null; - protected static String siteUrl = "https://www.bilibili.com"; - protected static String sitHost = "www.bilibili.com"; @Override public void init(Context context, String extend) { @@ -52,47 +49,13 @@ public class Bili extends Spider { return results.toString(); } - public static String cookie = ""; - public static String getCookie(){ - if(cookie.isEmpty()){ - OKCallBack.OKCallBackDefault callBack = new OKCallBack.OKCallBackDefault() { - @Override - protected void onFailure(Call call, Exception e) { - - } - - @Override - protected void onResponse(Response response) { - - } - }; - OkHttpUtil.get(OkHttpUtil.defaultClient(),siteUrl,callBack); - List cookies = OkHttpUtil.cookieStore.get(sitHost); - cookie = TextUtils.join(";",cookies); - } - return cookie; - } - - protected static HashMap CookieHeaders() { - HashMap headers = new HashMap<>(); - headers.put("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36"); - headers.put("Cookie", getCookie()); - return headers; - } - - @Override public String homeVideoContent() { try { JSONArray videos = new JSONArray(); try { String url = "https://api.bilibili.com/x/web-interface/search/type?search_type=video&keyword=窗 白噪音"; - String content = OkHttpUtil.string(url, CookieHeaders()); - int code = new JSONObject(content).getInt("code"); - if(code != 0){ - cookie = ""; - content = OkHttpUtil.string(url, CookieHeaders()); - } + String content = OkHttpUtil.string(url, null); JSONObject data = new JSONObject(content).getJSONObject("data"); JSONArray RArray = data.getJSONArray("result"); for (int i = 0; i < RArray.length(); i++) { @@ -145,12 +108,7 @@ public class Bili extends Spider { } } url += "&page=" + pg; - String content = OkHttpUtil.string(url, CookieHeaders()); - int code = new JSONObject(content).getInt("code"); - if(code != 0){ - cookie = ""; - content = OkHttpUtil.string(url, CookieHeaders()); - } + String content = OkHttpUtil.string(url, null); JSONObject data = new JSONObject(content).getJSONObject("data"); JSONArray list = new JSONArray(); JSONArray RSArray = data.getJSONArray("result"); diff --git a/app/src/main/java/com/github/catvod/spider/Kunyu77.java b/app/src/main/java/com/github/catvod/spider/Kunyu77.java index f56b9a0..ef6d1ff 100644 --- a/app/src/main/java/com/github/catvod/spider/Kunyu77.java +++ b/app/src/main/java/com/github/catvod/spider/Kunyu77.java @@ -31,12 +31,6 @@ public class Kunyu77 extends Spider { private HashMap getHeaders(String url) { HashMap headers = new HashMap<>(); headers.put("user-agent", uAgent); - String t = String.valueOf(System.currentTimeMillis()/ 1000) ; - - String zuhe=url+t+"XSpeUFjJ"; - String TK=Misc.MD5(zuhe, Misc.CharsetUTF8); - headers.put("TK",TK); - headers.put("t",t); return headers; } @@ -230,9 +224,8 @@ public class Kunyu77 extends Spider { @Override public String detailContent(List ids) { try { - String url = siteUrl + "/api.php/provide/videoDetail?ids=" + ids.get(0) + "&version=2.0.4&sj=1661957675"; - String urlx="/api.php/provide/videoDetail" + ids.get(0); - String content = OkHttpUtil.string(url, getHeaders(urlx)); + String url = siteUrl + "/api.php/provide/videoDetail?ids=" + ids.get(0); + String content = OkHttpUtil.string(url, getHeaders(url)); JSONObject dataObject = new JSONObject(decryptResponse(content)); JSONObject vObj = dataObject.getJSONObject("data"); JSONObject result = new JSONObject(); @@ -250,7 +243,7 @@ public class Kunyu77 extends Spider { vodAtom.put("vod_director", vObj.getString("director")); vodAtom.put("vod_content", vObj.getString("brief").trim()); - url = siteUrl + "/api.php/provide/videoPlaylist?ids=" + ids.get(0) + "&version=2.0.4&sj=1661957675"; + url = siteUrl + "/api.php/provide/videoPlaylist?ids=" + ids.get(0); content = OkHttpUtil.string(url, getHeaders(url)); JSONArray episodes = new JSONObject(content).getJSONObject("data").getJSONArray("episodes"); LinkedHashMap> playlist = new LinkedHashMap<>(); diff --git a/app/src/main/java/com/github/catvod/spider/PushAgent.java b/app/src/main/java/com/github/catvod/spider/PushAgent.java index 334a2fd..d4579e9 100644 --- a/app/src/main/java/com/github/catvod/spider/PushAgent.java +++ b/app/src/main/java/com/github/catvod/spider/PushAgent.java @@ -46,13 +46,23 @@ public class PushAgent extends Spider { @Override public void init(Context context, String extend) { super.init(context, extend); - fetchRule(false,0); + getToken(Token); } public void getToken(String token){ - if (token.startsWith("http")) { - Token = OkHttpUtil.string(token, null); - }else Token = token; + if(token!=null&&token.equals("")){ + String[] arr = token.split(";"); + if (arr.length > 0) { + token = arr[0]; + if(arr.length>2){ + String aid = arr[2]; + if(Misc.isNumeric(aid)) type = Integer.valueOf(aid); + } + } + if (token.startsWith("http")) { + Token = OkHttpUtil.string(token, null); + }else Token = token; + } } public JSONObject fetchRule(boolean flag,int t) { @@ -71,7 +81,6 @@ public class PushAgent extends Spider { if(!tk.equals("")){ getToken(tk); } - type = siteRule.optInt("ua", 1); } return jo; } @@ -201,6 +210,7 @@ public class PushAgent extends Spider { } + private static HashMap Headers() { HashMap headers = new HashMap<>(); headers.put("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36"); @@ -216,7 +226,7 @@ public class PushAgent extends Spider { } - private void refreshTk() { + private static void refreshTk() { long b = Time(); String str = j; if (str.isEmpty() || StopRefresh - b <= 600) { @@ -236,12 +246,12 @@ public class PushAgent extends Spider { long j2 = jSONObject3.getLong("expires_in"); StopRefresh = b + j2; } catch (Exception e) { - fetchRule(false,0); SpiderDebug.log(e); } } } + private static String VideoDetail(String shareid, String token, String fileid) { int i; try { @@ -356,9 +366,8 @@ public class PushAgent extends Spider { if (replace.length() > 20) { replace = replace.substring(0, 10) + "..." + replace.substring(replace.length() - 10); } - String category = jSONObject3.getString("category"); String fileIds = jSONObject3.getString("file_id"); - map.put(replace, str + "+" + str2 + "+" + fileIds+ "+" + category); + map.put(replace, str + "+" + str2 + "+" + fileIds); } } i2++; @@ -379,7 +388,7 @@ public class PushAgent extends Spider { } } - public String getAliContent(List list,JSONObject jSONObject6) { + public String getAliContent(List list,String pic,JSONObject jSONObject6) { String str; try { String url = list.get(0).trim(); @@ -432,7 +441,7 @@ public class PushAgent extends Spider { jSONObject6.put("vod_id", url); String string3 = jSONObject3.getString("share_name"); jSONObject6.put("vod_name", string3); - jSONObject6.put("vod_play_from", "AliYun$$$原画"); + jSONObject6.put("vod_play_from", "AliYun"); ArrayList arrayList = new ArrayList(); String string4 = jSONObject4.getString("type"); if (!string4.equals("folder")) { @@ -463,9 +472,7 @@ public class PushAgent extends Spider { ArrayList arrayList3 = new ArrayList(); for (int i2 = 0; i2 < 4; i2++) { String join = TextUtils.join("#", arrayList); - String join4 = TextUtils.join("#", arrayList); arrayList3.add(join); - arrayList3.add(join4); } String join2 = TextUtils.join("$$$", arrayList3); jSONObject6.put("vod_play_url", join2); @@ -630,7 +637,7 @@ public class PushAgent extends Spider { result.put("list", lists); return result.toString(); } else if (url.startsWith("http") && (matcher2.find())) { - return getAliContent(list,vodAtom); + return getAliContent(list,pic,vodAtom); } else if (url.startsWith("http") && (!matcher.find()) && (!matcher2.find())) { Document doc = null; String baseUrl = url.replaceAll("(^https?://.*?)(:\\d+)?/.*$", "$1");//https://www.dyk9.com @@ -769,11 +776,8 @@ public class PushAgent extends Spider { ArrayList aslist = new ArrayList<>(); String director = "",actor = "",desc = ""; String directorRegx = "导演:",actorRegx = "主演:",descRegx = "简介:"; - if (!Misc.matcher(descRegx, content).find()) { - return vodAtom; - } boolean fb = true; - if (!Misc.matcher(actorRegx, content).find()) { + if (!Misc.matcher("actorRegx", content).find()) { fb=false; actorRegx = "主演:"; directorRegx = "导演:"; @@ -835,23 +839,6 @@ public class PushAgent extends Spider { result.put("url", url); result.put("header", ""); return result.toString(); - case "原画": { - refreshTk(); - split = id.split("\\+"); - String DownLoadUrl = downLoadUrl(split[0], split[1], split[2], split[3]); - HashMap hashMap = new HashMap(); - OkHttpUtil.stringNoRedirect(DownLoadUrl,Headers(),hashMap); - url= OkHttpUtil.getRedirectLocation(hashMap); - JSONObject jSONObject4 = new JSONObject(); - jSONObject4.put("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36"); - jSONObject4.put("Referer", "https://www.aliyundrive.com/"); - JSONObject jSONObject = new JSONObject(); - jSONObject.put("parse", "0"); - jSONObject.put("playUrl", ""); - jSONObject.put("url", url); - jSONObject.put("header",jSONObject4.toString()); - return jSONObject.toString(); - } } if(flag.startsWith("嗅探")){ result.put("parse", 1); @@ -867,58 +854,4 @@ public class PushAgent extends Spider { return ""; } - private static String downLoadUrl(String shareid, String token, String fileid, String type) { - try { - HashMap z = Headers(); - z.put("x-share-token", token); - z.put("authorization", j); - if (type.equals("video")) { - JSONObject jSONObject = new JSONObject(); - jSONObject.put("share_id", shareid); - jSONObject.put("category", "live_transcoding"); - jSONObject.put("file_id", fileid); - jSONObject.put("template_id", ""); - JSONObject jSONObject2 = new JSONObject(Post("https://api.aliyundrive.com/v2/file/get_share_link_video_preview_play_info", jSONObject.toString(), z)); - shareid = jSONObject2.getString("share_id"); - fileid = jSONObject2.getString("file_id"); - } - JSONObject jSONObject3 = new JSONObject(); - if (type.equals("video")) { - jSONObject3.put("expire_sec", 600); - jSONObject3.put("file_id", fileid); - jSONObject3.put("share_id", shareid); - } - if (type.equals("audio")) { - jSONObject3.put("share_id", shareid); - jSONObject3.put("get_audio_play_info", true); - jSONObject3.put("file_id", fileid); - } - return new JSONObject(Post("https://api.aliyundrive.com/v2/file/get_share_link_download_url", jSONObject3.toString(), z)).getString("download_url"); - } catch (Exception e) { - SpiderDebug.log(e); - return ""; - } - } - - //修复软件不支持的格式无法嗅探的问题 - @Override - public boolean manualVideoCheck() { - return true; - } - - private String[] videoFormatList = new String[]{".m3u8", ".mp4", ".mpeg", ".flv", ".m4a",".mp3",".wma",".wmv"}; - - @Override - public boolean isVideoFormat(String url) { - url = url.toLowerCase(); - if (url.contains("=http") || url.contains("=https%3a%2f") || url.contains("=http%3a%2f")) { - return false; - } - for (String format : videoFormatList) { - if (url.contains(format)) { - return true; - } - } - return false; - } } \ No newline at end of file