From 0fd1d6df7c163f4c2882b3242a3292424303563a Mon Sep 17 00:00:00 2001 From: lushunming <1357197829@qq.com> Date: Tue, 21 Oct 2025 10:44:20 +0800 Subject: [PATCH] =?UTF-8?q?123=E7=9B=98=E5=9F=BA=E6=9C=AC=E5=AE=8C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/github/catvod/api/Pan123Api.kt | 394 ++++++++++++++++++ .../com/github/catvod/api/Pan123Handler.kt | 140 +++++++ .../com/github/catvod/bean/pan123/Cache.java | 46 ++ .../github/catvod/bean/pan123/ShareInfo.kt | 12 + .../com/github/catvod/bean/pan123/User.java | 53 +++ .../java/com/github/catvod/spider/Cloud.java | 50 ++- .../java/com/github/catvod/spider/Pan123.java | 89 ++++ .../java/com/github/catvod/spider/Push.java | 36 +- .../com/github/catvod/utils/DownloadMT.kt | 39 +- .../com/github/catvod/utils/ProxyServer.kt | 2 +- app/src/test/java/Pan123Test.java | 65 +++ app/src/test/java/TgSearchTest.java | 32 +- .../java/com/github/catvod/api/Pan123Test.kt | 75 ++++ build.bat | 2 +- jar/custom_spider.jar | Bin 510743 -> 510630 bytes jar/custom_spider.jar.md5 | 2 +- json/test.json | 2 +- 17 files changed, 976 insertions(+), 63 deletions(-) create mode 100644 app/src/main/java/com/github/catvod/api/Pan123Api.kt create mode 100644 app/src/main/java/com/github/catvod/api/Pan123Handler.kt create mode 100644 app/src/main/java/com/github/catvod/bean/pan123/Cache.java create mode 100644 app/src/main/java/com/github/catvod/bean/pan123/ShareInfo.kt create mode 100644 app/src/main/java/com/github/catvod/bean/pan123/User.java create mode 100644 app/src/main/java/com/github/catvod/spider/Pan123.java create mode 100644 app/src/test/java/Pan123Test.java create mode 100644 app/src/test/java/com/github/catvod/api/Pan123Test.kt diff --git a/app/src/main/java/com/github/catvod/api/Pan123Api.kt b/app/src/main/java/com/github/catvod/api/Pan123Api.kt new file mode 100644 index 00000000..822ec52a --- /dev/null +++ b/app/src/main/java/com/github/catvod/api/Pan123Api.kt @@ -0,0 +1,394 @@ +package com.github.catvod.api + +import com.github.catvod.bean.Result +import com.github.catvod.bean.Vod +import com.github.catvod.bean.Vod.VodPlayBuilder +import com.github.catvod.bean.pan123.ShareInfo +import com.github.catvod.crawler.SpiderDebug +import com.github.catvod.net.OkHttp +import com.github.catvod.utils.Json +import com.github.catvod.utils.ProxyServer.buildProxyUrl +import com.github.catvod.utils.Util +import okhttp3.HttpUrl +import java.util.regex.Pattern + +/** + * 123网盘API操作类 + * 提供123网盘的文件分享、下载、播放等功能 + */ +object Pan123Api { + public const val regex = + "https://(123592\\.com|123912\\.com|123865\\.com|123684\\.com|www\\.123684\\.com|www\\.123865\\.com|www\\.123912\\.com|www\\.123pan\\.com|www\\.123pan\\.cn|www\\.123592\\.com)/s/([^/]+)" + + private const val api = "https://www.123684.com/b/api/share/" + private const val loginUrl = "https://login.123pan.com/api/user/sign_in" + + private var authToken = "" + + + /** + * 初始化方法,检查登录状态 + */ + fun init() { + + } + + + /** + * 获取认证token + */ + private fun getAuth(): String { + if (authToken.isNotBlank()) { + return authToken + } + return Pan123Handler.getAuth() + + + } + + + /** + * 登录方法 + */ + fun login(passport: String, password: String): String? { + + val data = mapOf( + "passport" to passport, "password" to password, "remember" to true + ) + + val headers = mapOf( + "User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", + "Content-Type" to "application/json", + "App-Version" to "43", + "Referer" to "https://login.123pan.com/centerlogin?redirect_url=https%3A%2F%2Fwww.123684.com&source_page=website", + "Accept" to "application/json, text/plain, */*", + "Origin" to "https://login.123pan.com", + "Connection" to "keep-alive", + "Accept-Language" to "zh-CN,zh;q=0.9" + ) + + try { + val response = OkHttp.post(loginUrl, Json.toJson(data), headers) + SpiderDebug.log("登录请求信息:") + SpiderDebug.log("URL: $loginUrl") + SpiderDebug.log("账号: ${passport}") + SpiderDebug.log("响应内容: ${response.body}") + + if (response.code == 200) { + val authData = Json.safeObject(response.body) + SpiderDebug.log("解析后的响应数据: $authData") + if (authData.has("data") && authData.getAsJsonObject("data").has("token")) { + val token = authData.getAsJsonObject("data").get("token").asString + // setAuth(token) + SpiderDebug.log("登录成功") + + return token + } + } + + throw Exception("登录失败: HTTP状态码=${response.code}, 响应=${response.body}") + } catch (e: Exception) { + SpiderDebug.log("登录过程中发生错误: ${e.message}") + throw e + } + } + + /** + * 解析分享链接,提取分享密钥和提取码 + */ + fun getShareData(url: String): Map { + SpiderDebug.log("123链接:$url") + var sharePwd = "" + var lurl = java.net.URLDecoder.decode(url, "UTF-8") + + // 处理提取码格式 + if ("提取码" in lurl && "?" !in lurl) { + lurl = lurl.replace(Regex("提取码[::]"), "?") + } + if ("提取码" in lurl && "?" in lurl) { + lurl = lurl.replace(Regex("提取码[::]?"), "") + } + if (":" in lurl) { + lurl = lurl.replace(":", "") + } + + val matcher = Pattern.compile(regex).matcher(lurl) + + // 提取分享密码 + if ("?" in lurl) { + val queryPart = lurl.split("?")[1] + val pwdMatcher = Regex("[A-Za-z0-9]+").find(queryPart) + if (pwdMatcher != null) { + sharePwd = pwdMatcher.value + } + } + + if (matcher.find()) { + val match = matcher.group(2) ?: "" + val key = when { + "?" in match -> match.split("?")[0] + ".html" in match -> match.replace(".html", "") + "www" in match -> matcher.group(1) ?: match + else -> match + } + return mapOf("key" to key, "sharePwd" to sharePwd) + } + + return emptyMap() + } + + /** + * 根据分享链接获取文件列表 + */ + fun getFilesByShareUrl(shareKey: String, sharePwd: String): List { + // 获取分享信息 + val cate = getShareInfo(shareKey, sharePwd, 0, 0) + + return cate + } + + + /** + * 获取分享信息 + */ + private fun getShareInfo( + shareKey: String, sharePwd: String, next: Int, parentFileId: Long + ): List { + + + //文件夹 + val folders = mutableListOf() + //视频 + val videos = mutableListOf() + + + val url = + "${api}get?limit=100&next=$next&orderBy=file_name&orderDirection=asc&shareKey=${shareKey.trim()}&SharePwd=${sharePwd.ifEmpty { "" }}&ParentFileId=$parentFileId&Page=1" + + try { + val response = OkHttp.string( + url, mapOf( + "User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36" + ) + ) + + val data = Json.safeObject(response) + if (data.has("code") && data.get("code").asInt == 5103) { + SpiderDebug.log("123获取文件列表出错:" + data.get("message").asString) + return emptyList() + } + + val info = data.getAsJsonObject("data") + //其下没有文件 + if (info.get("Len").asLong <= 0) { + + return emptyList() + } + val nextValue = info.get("Next").asInt + val infoList = info.getAsJsonArray("InfoList") + + // 处理文件夹 + for (item in infoList) { + val itemObj = item.asJsonObject + //文件夹 + if (itemObj.get("Category").asInt == 0) { + folders.add( + ShareInfo( + itemObj.get("FileName").asString, + shareKey, + sharePwd, + nextValue, + itemObj.get("FileId").asLong, + itemObj["S3KeyFlag"].asString, + itemObj["Size"].asLong, + itemObj["Etag"].asString, + + ) + ) + } else if (itemObj.get("Category").asInt == 2) { + videos.add( + ShareInfo( + itemObj.get("FileName").asString, + shareKey, + sharePwd, + nextValue, + itemObj.get("FileId").asLong, + itemObj["S3KeyFlag"].asString, + itemObj["Size"].asLong, + itemObj["Etag"].asString, + ) + ) + } + } + + + // 递归获取子文件夹信息 + + for (item in folders) { + val result = getShareInfo( + item.shareKey, item.sharePwd, item.next, item.fileId + ) + videos.addAll(result) + } + + return videos + } catch (e: Exception) { + SpiderDebug.log("获取分享信息时发生错误: ${e.message}") + return emptyList() + } + } + + + /** + * 获取文件下载链接 + */ + fun getDownload( + shareKey: String, fileId: Long, s3KeyFlag: String, size: Long, etag: String + ): String { + + + SpiderDebug.log("获取下载链接参数:") + SpiderDebug.log("ShareKey: $shareKey") + SpiderDebug.log("FileID: $fileId") + SpiderDebug.log("S3KeyFlag: $s3KeyFlag") + SpiderDebug.log("Size: $size") + SpiderDebug.log("Etag: $etag") + SpiderDebug.log("Auth Token: ${getAuth().take(30)}...") + + val data = mapOf( + "ShareKey" to shareKey, "FileID" to fileId, "S3KeyFlag" to s3KeyFlag, "Size" to size, "Etag" to etag + ) + + val url = "${api}download/info" + SpiderDebug.log("请求URL: $url") + SpiderDebug.log("请求数据: ${Json.toJson(data)}") + + val headers = mapOf( + "User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", + "Content-Type" to "application/json", + "Authorization" to "Bearer ${getAuth()}" + ) + + try { + val response = OkHttp.post(url, Json.toJson(data), headers) + SpiderDebug.log("响应状态码: ${response.code}") + SpiderDebug.log("响应内容: ${response.body}") + + if (response.code == 200) { + val responseData = Json.safeObject(response.body) + if (responseData.has("data") && responseData.getAsJsonObject("data").has("DownloadURL")) { + val encodeUrl = responseData.getAsJsonObject("data").get("DownloadURL").asString + return Util.base64Decode(HttpUrl.parse(encodeUrl)?.queryParameter("params")) + } + } + + throw Exception("获取下载链接失败: HTTP状态码=${response.code}, 响应=${response.body}") + } catch (e: Exception) { + SpiderDebug.log("获取下载链接时发生错误: ${e.message}") + throw e + } + } + + /** + * 获取视频在线播放链接 + */ + fun getLiveTranscoding( + shareKey: String, fileId: Long, s3KeyFlag: String, size: Long, etag: String + ): List> { + + + val url = "https://www.123684.com/b/api/video/play/info?" + "etag=$etag&size=$size&from=1&shareKey=$shareKey" + + val headers = mapOf( + "User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", + "Authorization" to "Bearer ${getAuth()}", + "Content-Type" to "application/json;charset=UTF-8", + "platform" to "android" + ) + + try { + val response = OkHttp.string(url, headers) + + val downData = Json.safeObject(response) + if (downData.has("data") && downData.getAsJsonObject("data").has("video_play_info")) { + val videoInfo = mutableListOf>() + val videoPlayInfo = downData.getAsJsonObject("data").getAsJsonArray("video_play_info") + + for (item in videoPlayInfo) { + val itemObj = item.asJsonObject + if (itemObj.has("url") && !itemObj.get("url").isJsonNull) { + val resolution = if (itemObj.has("resolution")) itemObj.get("resolution").asString else "" + val urlValue = itemObj.get("url").asString + + videoInfo.add( + mapOf( + "name" to resolution, "url" to urlValue + ) + ) + } + } + + return videoInfo + } + } catch (e: Exception) { + SpiderDebug.log("获取视频播放链接时发生错误: ${e.message}") + } + + return emptyList() + } + + fun getPlayFormatList(): Array { + return arrayOf("原画") + } + + fun getVod(key: String, sharePwd: String): Vod { + val list = getFilesByShareUrl(key, sharePwd) + + val builder = VodPlayBuilder() + for (i in getPlayFormatList().indices) { + val playUrls = mutableListOf(); + for (item in list) { + + val play = VodPlayBuilder.PlayUrl() + play.name = "[${Util.getSize(item.Size.toDouble())}]${item.filename}" + play.url = + listOf(item.shareKey, item.fileId, item.S3KeyFlag, item.Size, item.Etag).joinToString("\\+\\+") + + playUrls.add(play) + + } + builder.append("pan123" + getPlayFormatList()[i], playUrls) + } + val buildResult = builder.build(); + + val vod = Vod() + vod.setVodId(key + "++" + sharePwd) + vod.setVodPic("") + vod.setVodYear("") + vod.setVodName("") + vod.setVodContent("") + vod.setVodPlayFrom(buildResult.vodPlayFrom) + vod.setVodPlayUrl(buildResult.vodPlayUrl) + return vod + + + } + + fun playerContent(id: String, flag: String): String { + val itemJson = id.split("\\+\\+") + + SpiderDebug.log("播放参数:$itemJson") + val url = getDownload( + itemJson[0], itemJson[1].toLong(), itemJson[2], itemJson[3].toLong(), itemJson[4] + ) + val header = mapOf( + "User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36" + ) + + return Result.get().url(buildProxyUrl(url, header)).octet().header(header).string(); + + + } + + +} \ No newline at end of file diff --git a/app/src/main/java/com/github/catvod/api/Pan123Handler.kt b/app/src/main/java/com/github/catvod/api/Pan123Handler.kt new file mode 100644 index 00000000..0e845ebd --- /dev/null +++ b/app/src/main/java/com/github/catvod/api/Pan123Handler.kt @@ -0,0 +1,140 @@ +package com.github.catvod.api + + +import android.R +import android.app.AlertDialog +import android.content.DialogInterface +import android.view.ViewGroup +import android.widget.EditText +import android.widget.LinearLayout +import com.github.catvod.api.Pan123Api.login +import com.github.catvod.bean.pan123.Cache +import com.github.catvod.bean.pan123.User +import com.github.catvod.crawler.SpiderDebug +import com.github.catvod.spider.Init +import com.github.catvod.utils.Notify +import com.github.catvod.utils.Path +import com.github.catvod.utils.ResUtil +import org.apache.commons.lang3.StringUtils +import java.io.File + +object Pan123Handler { + + + private var cache: Cache? = null + private var dialog: AlertDialog? = null + + private var auth = "" + private var userName = "" + private var passwd = "" + + fun getCache(): File { + return Path.tv("pan123") + } + + fun getAuth(): String { + return auth + } + + + init { + + cache = Cache.objectFrom(Path.read(getCache())) + if (cache == null) { + SpiderDebug.log("cache 为null") + startFlow() + } else { + userName = cache!!.user.userName + passwd = cache!!.user.password + auth = cache!!.user.cookie + if (StringUtils.isNotBlank(userName) && StringUtils.isNotBlank(passwd)) { + if (StringUtils.isBlank(auth)) { + SpiderDebug.log("userName passwd 不为空,auth 为空") + this.loginWithPassword(userName, passwd) + } + + } else { + SpiderDebug.log("userName passwd 为空") + startFlow() + } + } + + } + + + fun loginWithPassword(uname: String?, passwd: String?) { + SpiderDebug.log("loginWithPassword uname: $uname,passwd:$passwd") + + try { + //保存的账号密码 + val auth = login(uname!!, passwd!!) + if (StringUtils.isNotBlank(auth)) { + val user = User() + user.cookie = auth + user.password = passwd + user.userName = uname + this.auth = auth ?: "" + cache?.setUserInfo(user) + Notify.show("123登录成功") + } else { + Notify.show("123登录失败") + } + + } catch (e: Exception) { + SpiderDebug.log("登录失败: " + e.message) + Notify.show("123登录失败: " + e.message) + } + } + + fun startFlow() { + Init.run { this.showInput() } + } + + + private fun showInput() { + try { + val margin = ResUtil.dp2px(16) + val params = + LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) + val frame = LinearLayout(Init.context()) + frame.setOrientation(LinearLayout.VERTICAL) + // frame.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); + // params.setMargins(margin, margin, margin, margin); + val username = EditText(Init.context()) + username.setHint("请输入123用户名") + val password = EditText(Init.context()) + password.setHint("请输入123密码") + frame.addView(username, params) + frame.addView(password, params) + dialog = AlertDialog.Builder(Init.getActivity()).setTitle("请输入123用户名和密码").setView(frame) + .setNegativeButton( + R.string.cancel, null + ).setPositiveButton( + R.string.ok, DialogInterface.OnClickListener { dialog: DialogInterface?, which: Int -> + onPositive( + username.getText().toString(), password.getText().toString() + ) + }).show() + } catch (ignored: Exception) { + } + } + + + private fun onPositive(username: String?, password: String?) { + SpiderDebug.log("123用户名: $username") + SpiderDebug.log("123密码: $password") + dismiss() + Init.execute(Runnable { + loginWithPassword(username, password) + }) + } + + private fun dismiss() { + try { + if (dialog != null) dialog!!.dismiss() + } catch (ignored: Exception) { + } + } + + +} \ No newline at end of file diff --git a/app/src/main/java/com/github/catvod/bean/pan123/Cache.java b/app/src/main/java/com/github/catvod/bean/pan123/Cache.java new file mode 100644 index 00000000..54081e50 --- /dev/null +++ b/app/src/main/java/com/github/catvod/bean/pan123/Cache.java @@ -0,0 +1,46 @@ +package com.github.catvod.bean.pan123; + +import com.github.catvod.api.Pan123Handler; +import com.github.catvod.crawler.SpiderDebug; +import com.github.catvod.spider.Init; +import com.github.catvod.utils.Path; +import com.google.gson.Gson; +import com.google.gson.annotations.SerializedName; + +public class Cache { + + @SerializedName("user") + private User user; + + + public static Cache objectFrom(String str) { + if(str.isEmpty()) return new Cache(); + SpiderDebug.log("Cache.objectFrom: " + str); + Cache item = new Gson().fromJson(str, Cache.class); + return item == null ? new Cache() : item; + } + + public User getUser() { + return user == null ? new User() : user; + } + + + public void setUserInfo(User user) { + this.user = user; + this.saveUser(); + } + + public void saveUser() { + SpiderDebug.log("Cache.saveUser: " + toString()); + SpiderDebug.log("Cache.path: " + Pan123Handler.INSTANCE.getCache().getAbsolutePath()); + Init.execute(() -> Path.write(Pan123Handler.INSTANCE.getCache(), toString())); + } + + + @Override + public String toString() { + return new Gson().toJson(this); + } + + +} diff --git a/app/src/main/java/com/github/catvod/bean/pan123/ShareInfo.kt b/app/src/main/java/com/github/catvod/bean/pan123/ShareInfo.kt new file mode 100644 index 00000000..9f24524b --- /dev/null +++ b/app/src/main/java/com/github/catvod/bean/pan123/ShareInfo.kt @@ -0,0 +1,12 @@ +package com.github.catvod.bean.pan123 + +data class ShareInfo( + val filename: String, + val shareKey: String, + val sharePwd: String, + val next: Int, + val fileId: Long, + val S3KeyFlag: String, + val Size: Long, + val Etag: String + ) \ No newline at end of file diff --git a/app/src/main/java/com/github/catvod/bean/pan123/User.java b/app/src/main/java/com/github/catvod/bean/pan123/User.java new file mode 100644 index 00000000..3d372e41 --- /dev/null +++ b/app/src/main/java/com/github/catvod/bean/pan123/User.java @@ -0,0 +1,53 @@ +package com.github.catvod.bean.pan123; + +import com.google.gson.Gson; +import com.google.gson.annotations.SerializedName; + +public class User { + + + @SerializedName("cookie") + private String cookie; + + @SerializedName("userName") + private String userName; + @SerializedName("password") + private String password; + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getCookie() { + return cookie; + } + + public void setCookie(String cookie) { + this.cookie = cookie; + } + + public static User objectFrom(String str) { + User item = new Gson().fromJson(str, User.class); + return item == null ? new User() : item; + } + + + public void clean() { + this.cookie = ""; + this.userName = ""; + this.password = ""; + + } +} diff --git a/app/src/main/java/com/github/catvod/spider/Cloud.java b/app/src/main/java/com/github/catvod/spider/Cloud.java index 769bfaf4..3e4d5f9e 100644 --- a/app/src/main/java/com/github/catvod/spider/Cloud.java +++ b/app/src/main/java/com/github/catvod/spider/Cloud.java @@ -2,8 +2,10 @@ package com.github.catvod.spider; import android.content.Context; import android.text.TextUtils; +import com.github.catvod.api.Pan123Api; import com.github.catvod.api.TianyiApi; import com.github.catvod.crawler.Spider; +import com.github.catvod.crawler.SpiderDebug; import com.github.catvod.utils.Json; import com.github.catvod.utils.Util; import com.google.gson.JsonObject; @@ -19,11 +21,12 @@ import static com.github.catvod.api.TianyiApi.URL_START; */ public class Cloud extends Spider { private Quark quark = null; - /* private Ali ali = null; - private UC uc = null;*/ + /* private Ali ali = null; + private UC uc = null;*/ private TianYi tianYi = null; private YiDongYun yiDongYun = null; private BaiDuPan baiDuPan = null; + private Pan123 pan123 = null; @Override public void init(Context context, String extend) throws Exception { @@ -34,6 +37,7 @@ public class Cloud extends Spider { tianYi = new TianYi(); yiDongYun = new YiDongYun(); baiDuPan = new BaiDuPan(); + pan123 = new Pan123(); boolean first = Objects.nonNull(ext); quark.init(context, first && ext.has("cookie") ? ext.get("cookie").getAsString() : ""); /* uc.init(context, first && ext.has("uccookie") ? ext.get("uccookie").getAsString() : ""); @@ -41,43 +45,52 @@ public class Cloud extends Spider { tianYi.init(context, first && ext.has("tianyicookie") ? ext.get("tianyicookie").getAsString() : ""); yiDongYun.init(context, ""); baiDuPan.init(context, ""); + pan123.init(context, ""); } @Override public String detailContent(List shareUrl) throws Exception { + SpiderDebug.log("cloud detailContent shareUrl:" + Json.toJson(shareUrl)); + /* if (shareUrl.get(0).matches(Util.patternAli)) { return ali.detailContent(shareUrl); - } else */if (shareUrl.get(0).matches(Util.patternQuark)) { + } else */ + if (shareUrl.get(0).matches(Util.patternQuark)) { return quark.detailContent(shareUrl); } /*else if (shareUrl.get(0).matches(Util.patternUC)) { return uc.detailContent(shareUrl); - } */else if (shareUrl.get(0).startsWith(TianyiApi.URL_START)) { + } */ else if (shareUrl.get(0).startsWith(TianyiApi.URL_START)) { return tianYi.detailContent(shareUrl); } else if (shareUrl.get(0).contains(YiDongYun.URL_START)) { return yiDongYun.detailContent(shareUrl); - }else if (shareUrl.get(0).contains(BaiDuPan.URL_START)) { + } else if (shareUrl.get(0).contains(BaiDuPan.URL_START)) { return baiDuPan.detailContent(shareUrl); + } else if (shareUrl.get(0).matches(Pan123Api.regex)) { + SpiderDebug.log("Pan123Api shareUrl:" + Json.toJson(shareUrl)); + return pan123.detailContent(shareUrl); } return null; } @Override public String playerContent(String flag, String id, List vipFlags) throws Exception { + SpiderDebug.log("cloud playerContent flag:" + flag + " id:" + id); + if (flag.contains("quark")) { return quark.playerContent(flag, id, vipFlags); } /*else if (flag.contains("uc")) { return uc.playerContent(flag, id, vipFlags); - } */else if (flag.contains("天意")) { + } */ else if (flag.contains("天意")) { return tianYi.playerContent(flag, id, vipFlags); } else if (flag.contains("移动")) { return yiDongYun.playerContent(flag, id, vipFlags); }/* else { return ali.playerContent(flag, id, vipFlags); - }*/ - - else if (flag.contains("BD")) { + }*/ else if (flag.contains("BD")) { return baiDuPan.playerContent(flag, id, vipFlags); + } else if (flag.contains("pan123")) { + return pan123.playerContent(flag, id, vipFlags); } return flag; } @@ -89,17 +102,19 @@ public class Cloud extends Spider { i++; /*if (shareLink.matches(Util.patternUC)) { from.add(uc.detailContentVodPlayFrom(List.of(shareLink), i)); - } else*/ if (shareLink.matches(Util.patternQuark)) { + } else*/ + if (shareLink.matches(Util.patternQuark)) { from.add(quark.detailContentVodPlayFrom(List.of(shareLink), i)); } /*else if (shareLink.matches(Util.patternAli)) { from.add(ali.detailContentVodPlayFrom(List.of(shareLink), i)); - } */else if (shareLink.startsWith(URL_START)) { + } */ else if (shareLink.startsWith(URL_START)) { from.add(tianYi.detailContentVodPlayFrom(List.of(shareLink), i)); } else if (shareLink.contains(YiDongYun.URL_START)) { from.add(yiDongYun.detailContentVodPlayFrom(List.of(shareLink), i)); - } - else if (shareLink.contains(BaiDuPan.URL_START)) { + } else if (shareLink.contains(BaiDuPan.URL_START)) { from.add(baiDuPan.detailContentVodPlayFrom(List.of(shareLink), i)); + } else if (shareLink.matches(Pan123Api.regex)) { + from.add(pan123.detailContentVodPlayFrom(List.of(shareLink), i)); } } @@ -111,16 +126,19 @@ public class Cloud extends Spider { for (String shareLink : shareLinks) { /* if (shareLink.matches(Util.patternUC)) { urls.add(uc.detailContentVodPlayUrl(List.of(shareLink))); - } else */if (shareLink.matches(Util.patternQuark)) { + } else */ + if (shareLink.matches(Util.patternQuark)) { urls.add(quark.detailContentVodPlayUrl(List.of(shareLink))); }/* else if (shareLink.matches(Util.patternAli)) { urls.add(ali.detailContentVodPlayUrl(List.of(shareLink))); - } */else if (shareLink.startsWith(URL_START)) { + } */ else if (shareLink.startsWith(URL_START)) { urls.add(tianYi.detailContentVodPlayUrl(List.of(shareLink))); } else if (shareLink.contains(YiDongYun.URL_START)) { urls.add(yiDongYun.detailContentVodPlayUrl(List.of(shareLink))); - }else if (shareLink.contains(BaiDuPan.URL_START)) { + } else if (shareLink.contains(BaiDuPan.URL_START)) { urls.add(baiDuPan.detailContentVodPlayUrl(List.of(shareLink))); + } else if (shareLink.matches(Pan123Api.regex)) { + urls.add(pan123.detailContentVodPlayUrl(List.of(shareLink))); } } return TextUtils.join("$$$", urls); diff --git a/app/src/main/java/com/github/catvod/spider/Pan123.java b/app/src/main/java/com/github/catvod/spider/Pan123.java new file mode 100644 index 00000000..9230d2b6 --- /dev/null +++ b/app/src/main/java/com/github/catvod/spider/Pan123.java @@ -0,0 +1,89 @@ +package com.github.catvod.spider; + +import android.content.Context; +import android.text.TextUtils; +import com.github.catvod.api.Pan123Api; +import com.github.catvod.bean.Result; +import com.github.catvod.crawler.Spider; +import com.github.catvod.crawler.SpiderDebug; +import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +/** + * @author lushunming + */ +public class Pan123 extends Spider { + + + @Override + public void init(Context context, String extend) throws Exception { + + if (StringUtils.isNoneBlank(extend)) { + // Pan123Api.INSTANCE.setAuth(extend); + } + } + + @Override + public String detailContent(List ids) throws Exception { + + @NotNull Map<@NotNull String, @NotNull String> shareData = Pan123Api.INSTANCE.getShareData(ids.get(0)); + return Result.string(Pan123Api.INSTANCE.getVod(shareData.get("key"), shareData.get("sharePwd"))); + } + + + @Override + public String playerContent(String flag, String id, List vipFlags) throws Exception { + return Pan123Api.INSTANCE.playerContent(id, flag); + + } + + /** + * 獲取詳情內容視頻播放來源(多 shared_link) + * + * @param ids share_link 集合 + * @param + * @return 詳情內容視頻播放來源 + */ + public String detailContentVodPlayFrom(List ids, int index) { + List playFrom = new ArrayList<>(); + /* if (ids.size() < 2){ + return TextUtils.join("$$$", Pan123Api.INSTANCE.getPlayFormatList()); + }*/ + + for (int i = 1; i <= ids.size(); i++) { + + for (String s : Pan123Api.INSTANCE.getPlayFormatList()) { + playFrom.add(String.format(Locale.getDefault(), "pan123" + s + "#%02d%02d", i, index)); + + } + // playFrom.add("天意" + i + index); + } + return TextUtils.join("$$$", playFrom); + } + + /** + * 獲取詳情內容視頻播放地址(多 share_link) + * + * @param ids share_link 集合 + * @return 詳情內容視頻播放地址 + */ + public String detailContentVodPlayUrl(List ids) throws Exception { + List playUrl = new ArrayList<>(); + for (String id : ids) { + @NotNull Map<@NotNull String, @NotNull String> shareData = Pan123Api.INSTANCE.getShareData(id); + try { + playUrl.add(Pan123Api.INSTANCE.getVod(shareData.get("key"), shareData.get("sharePwd")).getVodPlayUrl()); + } catch (Exception e) { + SpiderDebug.log("获取播放地址出错:" + e.getMessage()); + } + } + return TextUtils.join("$$$", playUrl); + } + + +} diff --git a/app/src/main/java/com/github/catvod/spider/Push.java b/app/src/main/java/com/github/catvod/spider/Push.java index c0b9387f..cdf55636 100644 --- a/app/src/main/java/com/github/catvod/spider/Push.java +++ b/app/src/main/java/com/github/catvod/spider/Push.java @@ -8,6 +8,7 @@ import com.github.catvod.bean.Result; import com.github.catvod.bean.Sub; import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; +import com.github.catvod.crawler.SpiderDebug; import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Image; import com.github.catvod.utils.Util; @@ -19,31 +20,54 @@ import java.util.List; public class Push extends Spider { - private final Ali ali; + private Cloud cloud; public Push() { - ali = new Ali(); + cloud = new Cloud(); } @Override public void init(Context context, String extend) { - ali.init(context, extend); + try { + cloud.init(context, extend); + } catch (Exception e) { + SpiderDebug.log("Cloud init error: " + e.getMessage()); + } } @Override public String detailContent(List ids) throws Exception { - if (Ali.pattern.matcher(ids.get(0)).find()) return ali.detailContent(ids); - return Result.string(vod(ids.get(0))); + String url = ids.get(0); + + // 使用Cloud类处理各种云盘链接 + String cloudResult = cloud.detailContent(ids); + if (cloudResult != null) { + return cloudResult; + } + + // 如果不是云盘链接,返回普通链接处理结果 + return Result.string(vod(url)); } @Override public String playerContent(String flag, String id, List vipFlags) { + try { + // 使用Cloud类处理云盘链接的播放 + String cloudResult = cloud.playerContent(flag, id, vipFlags); + if (cloudResult != null) { + return cloudResult; + } + } catch (Exception e) { + SpiderDebug.log("Cloud playerContent error: " + e.getMessage()); + } + + // 原有逻辑处理其他类型链接 if (id.startsWith("http") && id.contains("***")) id = id.replace("***", "#"); if (flag.equals("直連")) return Result.get().url(id).subs(getSubs(id)).string(); if (flag.equals("解析")) return Result.get().parse().jx().url(id).string(); if (flag.equals("嗅探")) return Result.get().parse().url(id).string(); if (flag.equals("迅雷")) return Result.get().url(id).string(); - return ali.playerContent(flag, id, vipFlags); + return Result.get().url(id).string(); } private Vod vod(String url) { diff --git a/app/src/main/java/com/github/catvod/utils/DownloadMT.kt b/app/src/main/java/com/github/catvod/utils/DownloadMT.kt index fd5c975e..d1425509 100644 --- a/app/src/main/java/com/github/catvod/utils/DownloadMT.kt +++ b/app/src/main/java/com/github/catvod/utils/DownloadMT.kt @@ -4,28 +4,22 @@ import com.github.catvod.crawler.SpiderDebug import com.github.catvod.net.OkHttp import com.github.catvod.utils.ProxyVideo.getMimeType import com.github.catvod.utils.ProxyVideo.parseRange -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Deferred -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.async -import kotlinx.coroutines.awaitAll -import kotlinx.coroutines.runBlocking +import kotlinx.coroutines.* import okhttp3.Response import org.apache.commons.lang3.StringUtils import java.io.InputStream import java.io.SequenceInputStream -import java.util.Vector +import java.util.* import kotlin.math.min object DownloadMT { - private val THREAD_NUM: Int = Runtime.getRuntime().availableProcessors() * 2 + private val THREAD_NUM: Int = 16 private val infos = mutableMapOf>(); - fun proxyMultiThread(url: String, headers: Map): Array? = - runBlocking { - proxyAsync(url, headers) - } + fun proxyMultiThread(url: String, headers: Map): Array? = runBlocking { + proxyAsync(url, headers) + } /** * 获取是否分片信息,顺带请求一个1MB块 @@ -52,11 +46,10 @@ object DownloadMT { if (info == null) { infos.clear() info = CoroutineScope(Dispatchers.IO).async { getInfo(url, headers) }.await() - infos[url] = info - /* //支持分片,先返回这个1MB块 - if (info[0] as Int == 206) { - return info - }*/ + infos[url] = info/* //支持分片,先返回这个1MB块 + if (info[0] as Int == 206) { + return info + }*/ } val code = info[0] as Int @@ -78,8 +71,7 @@ object DownloadMT { /* if (total.toLong() < 1024 * 1024 * 100) { return proxy(url, headers) }*/ - var range = - if (StringUtils.isAllBlank(headers["range"])) headers["Range"] else headers["range"] + var range = if (StringUtils.isAllBlank(headers["range"])) headers["Range"] else headers["range"] if (StringUtils.isAllBlank(range)) range = "bytes=0-"; SpiderDebug.log("---proxyMultiThread,Range:$range") val rangeObj = parseRange( @@ -128,8 +120,7 @@ object DownloadMT { /* respHeaders.put("Access-Control-Allow-Credentials", "true"); respHeaders.put("Access-Control-Allow-Origin", "*");*/ - resHeader["Content-Length"] = - (partList[THREAD_NUM - 1][1] - partList[0][0] + 1).toString() + resHeader["Content-Length"] = (partList[THREAD_NUM - 1][1] - partList[0][0] + 1).toString() resHeader.remove("content-length") resHeader["Content-Range"] = String.format( @@ -156,12 +147,10 @@ object DownloadMT { fun generatePart(rangeObj: Map, total: String): List { val totalSize = total.toLong() //超过10GB,分块是32Mb,不然是16MB - val partSize = - if (totalSize > 1024L * 1024L * 1024L * 10L) 1024 * 1024 * 8 * 4L else 1024 * 1024 * 8 * 2L + val partSize = if (totalSize > 1024L * 1024L * 1024L * 10L) 1024 * 1024 * 8 * 4L else 1024 * 1024 * 8 * 2L var start = rangeObj["start"]!!.toLong() - var end = - if (StringUtils.isAllBlank(rangeObj["end"])) start + partSize else rangeObj["end"]!!.toLong() + var end = if (StringUtils.isAllBlank(rangeObj["end"])) start + partSize else rangeObj["end"]!!.toLong() end = min(end.toDouble(), (totalSize - 1).toDouble()).toLong() diff --git a/app/src/main/java/com/github/catvod/utils/ProxyServer.kt b/app/src/main/java/com/github/catvod/utils/ProxyServer.kt index 85068922..87b8bbd2 100644 --- a/app/src/main/java/com/github/catvod/utils/ProxyServer.kt +++ b/app/src/main/java/com/github/catvod/utils/ProxyServer.kt @@ -11,7 +11,7 @@ import kotlinx.coroutines.runBlocking object ProxyServer { - private val THREAD_NUM = Runtime.getRuntime().availableProcessors() + private const val THREAD_NUM = 16 private val partSize = 1024 * 1024 * 2 private var port = 12345 private var httpServer: AdvancedHttpServer? = null diff --git a/app/src/test/java/Pan123Test.java b/app/src/test/java/Pan123Test.java new file mode 100644 index 00000000..233aeac7 --- /dev/null +++ b/app/src/test/java/Pan123Test.java @@ -0,0 +1,65 @@ +import android.app.Application; +import com.github.catvod.spider.Init; +import com.github.catvod.spider.Pan123; +import com.github.catvod.spider.TianYi; +import com.github.catvod.utils.Json; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonObject; +import org.junit.Assert; +import org.junit.runner.RunWith; +import org.robolectric.RobolectricTestRunner; +import org.robolectric.RuntimeEnvironment; + +import java.util.ArrayList; +import java.util.Arrays; + +@RunWith(RobolectricTestRunner.class) +public class Pan123Test { + + private Application mockContext; + + private Pan123 spider; + + @org.junit.Before + public void setUp() throws Exception { + mockContext = RuntimeEnvironment.application; + Init.init(mockContext); + spider = new Pan123(); + // spider.init(mockContext, "b-user-id=89ede34e-0efc-e1dd-c997-f16aaa792d0c; _UP_A4A_11_=wb9661c6dfb642f88f73d8e0c7edd398; b-user-id=89ede34e-0efc-e1dd-c997-f16aaa792d0c; ctoken=wla6p3EUOLyn1FSB8IKp1SEW; grey-id=5583e32b-39df-4bf0-f39f-1adf83f604a2; grey-id.sig=p8ReBIMG2BeZu1sYvsuOAZxYbx-MVrsfKEiCv87MsTM; isQuark=true; isQuark.sig=hUgqObykqFom5Y09bll94T1sS9abT1X-4Df_lzgl8nM; _UP_F7E_8D_=ZkyvVHnrBLp1A1NFJIjWi0PwKLOVbxJPcg0RzQPI6KmBtV6ZMgPh38l93pgubgHDQqhaZ2Sfc0qv%2BRantbfg1mWGAUpRMP4RqXP78Wvu%2FCfvkWWGc5NhCTV71tGOIGgDBR3%2Bu6%2Fjj44KlE5biSNDOWW7Bigcz27lvOTidzNw8s%2FWtKAIxWbnCzZn4%2FJMBUub1SIMcW89g57k4mfPmDlCgpZKzxwl6beSfdtZ4RUWXmZOn5v5NkxVKhU4wR0Pq7NklczEGdRq2nIAcu7v22Uw2o%2FxMY0xBdeC9Korm5%2FNHnxl6K%2Bd6FXSoT9a3XIMQO359auZPiZWzrNlZe%2BqnOahXcx7KAhQIRqSOapSmL4ygJor4r5isJhRuDoXy7vJAVuH%2FRDtEJJ8rZTq0BdC23Bz%2B0MrsdgbK%2BiW; _UP_D_=pc; __wpkreporterwid_=3d3f74a7-99b7-4916-3f78-911fc2eb9d87; tfstk=fIoZNxjnbhKwPOu0TWZ4LsaRqirTcudSSmNbnxD0C5VgClMm8xMyB-GsnSu4tjpOflAOmSD-9PNiGl120XrgkVNb1SrqHbJBN3tSBAEYoQOWVUUg9qZ8n1bGGkD3CqGYINKSBABhjnXgp3_Vywz6gSc0Syj3BWf0mr2DLW24eZfiiovEKWefj1q0swq3E82iNEMinMy7SLrcpA4Fh3z_ZAViCfih3PbtdW5N_DuU77AaTijmYRkL2Wq54ENoy5a7ZXxCbok33XzS7QSZgxD-oyoVsdGotql0p2dVu7umC4nLStbiLmParc4FELHrI-c0u2dPVRrs8zoZWKCnIbNZrlHfUCMUz2z8KyXVSlgSFmUojh58OzeqTzgwaGll4YCYKwctDV5coP2LL79eKHxpNTXHmre1kZU32JPWCR_AkP2LL79eLZQY-WeUNdw1.; __pus=2051c82285199d8be553be41dd5a2100AAQ+mmv35G4FDDZ5x+3Mhe2OMbNgweQ1ODbW8zDt9YuP1LQVqHUuAAz9KWLsPjpNtim0AVGHusN4MCosTmbq/khM; __kp=e6604120-6051-11ef-bfe4-c31b6cdd0766; __kps=AATcZArVgS76EPn0FMaV4HEj; __ktd=sii/iz4ePzEaoVirXul7QQ==; __uid=AATcZArVgS76EPn0FMaV4HEj; __itrace_wid=5829b95d-dac1-48d3-bfd5-f60cd9462786; __puus=7da0b96cb710fa1b376934485f977e05AATp/q8/QupT7IiBR1GWqZhxlIRT677smMvoHlLxQA0Lk6CkP0YJBOTl+p9DZgzlMz6w4hPXPgWsokukk8PW7ZfhFfPmv8tKMgLpCGLW+tk57luhNghmSdTeVPkAF59STtyCPBEtiNzNAd/zZJ6qILJDi5ywEBAAAg+gOyWHoLHNUR+QxeHRuQa8g5WWA95J8jebIlrr8rCvI1vjTbtiYktT"); + // spider.init(mockContext, "{\"open.e.189.cn\":[{\"name\":\"SSON\",\"value\":\"dc466c8192e3109eaea837c1d136c1fd065253ce1c7d3a66ca1520d7d6d6307b10a1fe65c7becac73b95f24a6e681e654ec4f47c39533ebcc48bb78d6d6e63d1bbf3334e6e97eaa7092d34f87bf1209ee35f344871bc5a329eac34ae948d399d4a6b3b28a929c4f353ade0981657e9e0f09ce27cc1c15d8322c6e45a8ebb21eb431509f1dd7dc3a7856b32b0991d654d5ced73dd20b764ca8737600cbe699c37ccf59b3c610893fc42bdc08b477c5d394e290c14d175d1ca0ee9fa61a1a8dcac7007e9219fd0ae6ccd5dc760524213f85b6b8c6166af01a31336dab797d9118010b81a5a3c26e08e\",\"expiresAt\":253402300799999,\"domain\":\"e.189.cn\",\"path\":\"/\",\"secure\":true,\"httpOnly\":true,\"persistent\":true,\"hostOnly\":false},{\"name\":\"GUID\",\"value\":\"525d8874e53e46a7ba3ed8907e9fef1f\",\"expiresAt\":1775176321000,\"domain\":\"e.189.cn\",\"path\":\"/\",\"secure\":false,\"httpOnly\":false,\"persistent\":true,\"hostOnly\":false},{\"name\":\"pageOp\",\"value\":\"336b9ddc820212fa6c9b5a0cfd7bf5b3\",\"expiresAt\":253402300799999,\"domain\":\"e.189.cn\",\"path\":\"/\",\"secure\":false,\"httpOnly\":false,\"persistent\":false,\"hostOnly\":false},{\"name\":\"OPENINFO\",\"value\":\"33c28688ef52ce9e3a9ef87388047efbde5e3e2e4c7ef6ef267632468c7dfaf294ff59fa59d34801\",\"expiresAt\":253402300799999,\"domain\":\"e.189.cn\",\"path\":\"/\",\"secure\":false,\"httpOnly\":true,\"persistent\":false,\"hostOnly\":false},{\"name\":\"GRAYNUMBER\",\"value\":\"319DE3F68C8730862F3BEF66F3D635B7\",\"expiresAt\":1775177653000,\"domain\":\"e.189.cn\",\"path\":\"/\",\"secure\":false,\"httpOnly\":false,\"persistent\":true,\"hostOnly\":false}],\"cloud.189.cn\":[{\"name\":\"JSESSIONID\",\"value\":\"431787526C43DF21B6373E914FE597EC\",\"expiresAt\":253402300799999,\"domain\":\"cloud.189.cn\",\"path\":\"/\",\"secure\":false,\"httpOnly\":true,\"persistent\":false,\"hostOnly\":true},{\"name\":\"COOKIE_LOGIN_USER\",\"value\":\"0C7407F59A6E5896EB6B777056E160DB020BAE67B121B5930CCD4777073744055308F7E8CD03F2FC2399E4823F60ECDD74120CEE4C529017\",\"expiresAt\":253402300799999,\"domain\":\"cloud.189.cn\",\"path\":\"/\",\"secure\":false,\"httpOnly\":true,\"persistent\":false,\"hostOnly\":false}]}"); + // Server.get().start(); + spider.init(mockContext, "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NjE1MjEyNzksImlhdCI6MTc2MDkxNjQ3OSwiaWQiOjE4NDc0Mjg3NzAsIm1haWwiOiIiLCJuaWNrbmFtZSI6IjE4ODk2NzgxNjAxIiwic3VwcGVyIjpmYWxzZSwidXNlcm5hbWUiOjE4ODk2NzgxNjAxLCJ2IjowfQ.gVhIfG1t2tUts68eYY-AdUfJoBKBNeG41k3XGYfwCek"); + } + + @org.junit.Test + public void init() throws Exception { + spider.init(mockContext, "{\"open.e.189.cn\":[{\"name\":\"SSON\",\"value\":\"dc466c8192e3109eaea837c1d136c1fd065253ce1c7d3a66ca1520d7d6d6307b10a1fe65c7becac73b95f24a6e681e654ec4f47c39533ebcc48bb78d6d6e63d1bbf3334e6e97eaa7092d34f87bf1209ee35f344871bc5a329eac34ae948d399d4a6b3b28a929c4f353ade0981657e9e0f09ce27cc1c15d8322c6e45a8ebb21eb431509f1dd7dc3a7856b32b0991d654d5ced73dd20b764ca8737600cbe699c37ccf59b3c610893fc42bdc08b477c5d394e290c14d175d1ca0ee9fa61a1a8dcac7007e9219fd0ae6ccd5dc760524213f85b6b8c6166af01a31336dab797d9118010b81a5a3c26e08e\",\"expiresAt\":253402300799999,\"domain\":\"e.189.cn\",\"path\":\"/\",\"secure\":true,\"httpOnly\":true,\"persistent\":true,\"hostOnly\":false},{\"name\":\"GUID\",\"value\":\"525d8874e53e46a7ba3ed8907e9fef1f\",\"expiresAt\":1775176321000,\"domain\":\"e.189.cn\",\"path\":\"/\",\"secure\":false,\"httpOnly\":false,\"persistent\":true,\"hostOnly\":false},{\"name\":\"pageOp\",\"value\":\"336b9ddc820212fa6c9b5a0cfd7bf5b3\",\"expiresAt\":253402300799999,\"domain\":\"e.189.cn\",\"path\":\"/\",\"secure\":false,\"httpOnly\":false,\"persistent\":false,\"hostOnly\":false},{\"name\":\"OPENINFO\",\"value\":\"33c28688ef52ce9e3a9ef87388047efbde5e3e2e4c7ef6ef267632468c7dfaf294ff59fa59d34801\",\"expiresAt\":253402300799999,\"domain\":\"e.189.cn\",\"path\":\"/\",\"secure\":false,\"httpOnly\":true,\"persistent\":false,\"hostOnly\":false},{\"name\":\"GRAYNUMBER\",\"value\":\"319DE3F68C8730862F3BEF66F3D635B7\",\"expiresAt\":1775177653000,\"domain\":\"e.189.cn\",\"path\":\"/\",\"secure\":false,\"httpOnly\":false,\"persistent\":true,\"hostOnly\":false}],\"cloud.189.cn\":[{\"name\":\"JSESSIONID\",\"value\":\"431787526C43DF21B6373E914FE597EC\",\"expiresAt\":253402300799999,\"domain\":\"cloud.189.cn\",\"path\":\"/\",\"secure\":false,\"httpOnly\":true,\"persistent\":false,\"hostOnly\":true},{\"name\":\"COOKIE_LOGIN_USER\",\"value\":\"0C7407F59A6E5896EB6B777056E160DB020BAE67B121B5930CCD4777073744055308F7E8CD03F2FC2399E4823F60ECDD74120CEE4C529017\",\"expiresAt\":253402300799999,\"domain\":\"cloud.189.cn\",\"path\":\"/\",\"secure\":false,\"httpOnly\":true,\"persistent\":false,\"hostOnly\":false}]}"); + //Assert.assertFalse(map.getAsJsonArray("list").isEmpty()); + } + + @org.junit.Test + public void detailContent() throws Exception { + + String content = spider.detailContent(Arrays.asList("https://www.123865.com/s/u9izjv-6hSWv")); + System.out.println("detailContent--" + content); + JsonObject map = Json.safeObject(content); + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + System.out.println("detailContent--" + gson.toJson(map)); + Assert.assertFalse(map.getAsJsonArray("list").isEmpty()); + } + + @org.junit.Test + public void playerContent() throws Exception { + + String content = spider.playerContent("pan123原画","eyJmaWxlbmFtZSI6IuWRveaCrOS4gOeUny5TMDFFMDEuMjAyNS4yMTYwcC5XRUItREwuSDI2NS5ERFA1LjEubWt2Iiwic2hhcmVLZXkiOiJ1OWl6anYtNmhTV3YiLCJzaGFyZVB3ZCI6IiIsIm5leHQiOi0xLCJmaWxlSWQiOjI3MzQ0MjY3LCJTM0tleUZsYWciOiIxODI3MDg2NzQ5LTAiLCJTaXplIjoxNDExNDM3ODI2LCJFdGFnIjoiZGZmOGZlZWU2N2JkYzRhOTQxMjlhZTJlNTg1YmI0Y2QifQ==",new ArrayList<>()); + System.out.println("playerContent--" + content); + JsonObject map = Json.safeObject(content); + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + System.out.println("playerContent--" + gson.toJson(map)); + Assert.assertFalse(map.getAsJsonPrimitive("url").getAsString().isEmpty()); + while(true){ + + } + } +} \ No newline at end of file diff --git a/app/src/test/java/TgSearchTest.java b/app/src/test/java/TgSearchTest.java index e04462b8..94f616ed 100644 --- a/app/src/test/java/TgSearchTest.java +++ b/app/src/test/java/TgSearchTest.java @@ -1,11 +1,7 @@ import android.app.Application; import com.github.catvod.server.Server; import com.github.catvod.spider.Init; -import com.github.catvod.spider.PanSearch; -import com.github.catvod.spider.Tg189Search; -import com.github.catvod.spider.TgQuarkSearch; -import com.github.catvod.spider.TgSearch; -import com.github.catvod.spider.TianYiSo; +import com.github.catvod.spider.TgSearchBaidu; import com.github.catvod.utils.Json; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -15,6 +11,7 @@ import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; +import java.util.ArrayList; import java.util.Arrays; @RunWith(RobolectricTestRunner.class) @@ -22,23 +19,23 @@ public class TgSearchTest { private Application mockContext; - private TgQuarkSearch spider; + private TgSearchBaidu spider; @org.junit.Before public void setUp() throws Exception { mockContext = RuntimeEnvironment.application; Init.init(mockContext); - spider = new TgQuarkSearch(); + spider = new TgSearchBaidu(); Server.get().start(); // spider.init(mockContext, "{\"cookie\":\"b-user-id=89ede34e-0efc-e1dd-c997-f16aaa792d0c; _UP_A4A_11_=wb9661c6dfb642f88f73d8e0c7edd398; b-user-id=89ede34e-0efc-e1dd-c997-f16aaa792d0c; ctoken=wla6p3EUOLyn1FSB8IKp1SEW; grey-id=5583e32b-39df-4bf0-f39f-1adf83f604a2; grey-id.sig=p8ReBIMG2BeZu1sYvsuOAZxYbx-MVrsfKEiCv87MsTM; isQuark=true; isQuark.sig=hUgqObykqFom5Y09bll94T1sS9abT1X-4Df_lzgl8nM; _UP_F7E_8D_=ZkyvVHnrBLp1A1NFJIjWi0PwKLOVbxJPcg0RzQPI6KmBtV6ZMgPh38l93pgubgHDQqhaZ2Sfc0qv%2BRantbfg1mWGAUpRMP4RqXP78Wvu%2FCfvkWWGc5NhCTV71tGOIGgDBR3%2Bu6%2Fjj44KlE5biSNDOWW7Bigcz27lvOTidzNw8s%2FWtKAIxWbnCzZn4%2FJMBUub1SIMcW89g57k4mfPmDlCgpZKzxwl6beSfdtZ4RUWXmZOn5v5NkxVKhU4wR0Pq7NklczEGdRq2nIAcu7v22Uw2o%2FxMY0xBdeC9Korm5%2FNHnxl6K%2Bd6FXSoT9a3XIMQO359auZPiZWzrNlZe%2BqnOahXcx7KAhQIRqSOapSmL4ygJor4r5isJhRuDoXy7vJAVuH%2FRDtEJJ8rZTq0BdC23Bz%2B0MrsdgbK%2BiW; _UP_D_=pc; __wpkreporterwid_=3d3f74a7-99b7-4916-3f78-911fc2eb9d87; tfstk=fIoZNxjnbhKwPOu0TWZ4LsaRqirTcudSSmNbnxD0C5VgClMm8xMyB-GsnSu4tjpOflAOmSD-9PNiGl120XrgkVNb1SrqHbJBN3tSBAEYoQOWVUUg9qZ8n1bGGkD3CqGYINKSBABhjnXgp3_Vywz6gSc0Syj3BWf0mr2DLW24eZfiiovEKWefj1q0swq3E82iNEMinMy7SLrcpA4Fh3z_ZAViCfih3PbtdW5N_DuU77AaTijmYRkL2Wq54ENoy5a7ZXxCbok33XzS7QSZgxD-oyoVsdGotql0p2dVu7umC4nLStbiLmParc4FELHrI-c0u2dPVRrs8zoZWKCnIbNZrlHfUCMUz2z8KyXVSlgSFmUojh58OzeqTzgwaGll4YCYKwctDV5coP2LL79eKHxpNTXHmre1kZU32JPWCR_AkP2LL79eLZQY-WeUNdw1.; __pus=2051c82285199d8be553be41dd5a2100AAQ+mmv35G4FDDZ5x+3Mhe2OMbNgweQ1ODbW8zDt9YuP1LQVqHUuAAz9KWLsPjpNtim0AVGHusN4MCosTmbq/khM; __kp=e6604120-6051-11ef-bfe4-c31b6cdd0766; __kps=AATcZArVgS76EPn0FMaV4HEj; __ktd=sii/iz4ePzEaoVirXul7QQ==; __uid=AATcZArVgS76EPn0FMaV4HEj; __itrace_wid=5829b95d-dac1-48d3-bfd5-f60cd9462786; __puus=7da0b96cb710fa1b376934485f977e05AATp/q8/QupT7IiBR1GWqZhxlIRT677smMvoHlLxQA0Lk6CkP0YJBOTl+p9DZgzlMz6w4hPXPgWsokukk8PW7ZfhFfPmv8tKMgLpCGLW+tk57luhNghmSdTeVPkAF59STtyCPBEtiNzNAd/zZJ6qILJDi5ywEBAAAg+gOyWHoLHNUR+QxeHRuQa8g5WWA95J8jebIlrr8rCvI1vjTbtiYktT\",\"token\":\"26fc6787afff43e78b78992e782502f1\"}"); - spider.init(mockContext,"{\n" + + /* spider.init(mockContext,"{\n" + "\t\"username\":\"18896781601\" ,\"password\":\"Lushunming@0526\"\n" + - "}"); // spider.init(mockContext, ""); + "}"); */ + + spider.init(mockContext, "{\n" + " \"api_urls\": [\n" + " \"https://psweb.banye.tech:7777/api/search\",\n" + " \"https://so.566987.xyz/api/search\",\n" + " \"http://152.69.222.142:8088/api/search\"\n" + " ],\n" + " \"sources\": [\n" + " \"123盘\"\n" + " ]\n" + " }"); } - - @org.junit.Test public void searchContent() throws Exception { String content = spider.searchContent("水饺皇后", false); @@ -51,7 +48,18 @@ public class TgSearchTest { @org.junit.Test public void detailContent() throws Exception { - String content = spider.detailContent(Arrays.asList("/s/LEvn4lUGB6ufdQ")); + String content = spider.detailContent(Arrays.asList("https://123684.com/s/u9izjv-smUWv")); + JsonObject map = Json.safeObject(content); + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + System.out.println("detailContent--" + gson.toJson(map)); + Assert.assertFalse(map.getAsJsonArray("list").isEmpty()); + } + + @org.junit.Test + public void playerContent() throws Exception { + String content1 = spider.detailContent(Arrays.asList("https://123684.com/s/u9izjv-smUWv")); + + String content = spider.playerContent("pan123原画", "eyJmaWxlbmFtZSI6IlRoZS5EdW1wbGluZy5RdWVlbi4yMDI1LjEwODBwLldFQi1ETC5IMjY0LkFBQy5tcDQiLCJzaGFyZUtleSI6InU5aXpqdi1zbVVXdiIsInNoYXJlUHdkIjoiIiwibmV4dCI6LTEsImZpbGVJZCI6MTg1NjgwODEsIlMzS2V5RmxhZyI6IjE4NDMwNTU4NTItMCIsIlNpemUiOjY0MDQyNTYzMTIsIkV0YWciOiIwYjNjZGIyOTYxZWM2NmQ5MjAyMTViOTRmZGY2MDZjNyJ9", new ArrayList<>()); JsonObject map = Json.safeObject(content); Gson gson = new GsonBuilder().setPrettyPrinting().create(); System.out.println("detailContent--" + gson.toJson(map)); diff --git a/app/src/test/java/com/github/catvod/api/Pan123Test.kt b/app/src/test/java/com/github/catvod/api/Pan123Test.kt new file mode 100644 index 00000000..6032c384 --- /dev/null +++ b/app/src/test/java/com/github/catvod/api/Pan123Test.kt @@ -0,0 +1,75 @@ +package com.github.catvod.api + +import com.github.catvod.utils.Util +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner + +@RunWith(RobolectricTestRunner::class) +class Pan123Test { + var pan123: Pan123Api? = null + + @Before + fun setUp() { + pan123 = Pan123Api + // pan123!!.login() + } + @Test + @Throws(Exception::class) + fun login() { + //pan123!!.login() + "https://123684.com/s/u9izjv-smUWv".matches(Pan123Api.regex.toRegex()) + "https://www.123865.com/s/u9izjv-6hSWv".matches(Util.patternQuark.toRegex()) + } + + @Test + @Throws(Exception::class) + fun processShareData() { + val result: Map = pan123!!.getShareData("https://www.123865.com/s/u9izjv-6hSWv") + println(result) + + + val files= pan123!!.getFilesByShareUrl(result["key"]!!, result["sharePwd"]!!); + println(files) + + /* if (files != null) { + for (file in files) { + val playUrl = pan123!!.getDownload(result["key"]!!, file.fileId, file.S3KeyFlag, file.Size, file.Etag) + println(playUrl) + } + }*/ if (files != null) { + for (file in files) { + val playUrl = pan123!!.getLiveTranscoding(result["key"]!!, file.fileId, file.S3KeyFlag, file.Size, file.Etag) + println(playUrl) + } + } + + /*for (String s : result.keySet()) { + for (Map stringStringMap : result.get(s)) { + String playUrl = pan123.fetchPlayUrl(stringStringMap.get("contentId"), ""); + System.out.println(stringStringMap.get("name") + ":" + playUrl); + } + + + }*/ + } /* @Test + public void download() throws Exception { + + Map>> result = pan123.processShareData("https://caiyun.139.com/w/i/2nQQVZWCR24yf"); + System.out.println(result); + for (String s : result.keySet()) { + for (Map stringStringMap : result.get(s)) { + String playUrl = pan123.fetchPlayUrl(stringStringMap.get("contentId"), stringStringMap.get("linkID")); + String url2 = pan123.get4kVideoInfo(stringStringMap.get("linkID"), stringStringMap.get("path")); + System.out.println(stringStringMap.get("name") + ":" + playUrl); + System.out.println(stringStringMap.get("url2") + ":" + url2); + } + } + //; + + + } + +*/ +} \ No newline at end of file diff --git a/build.bat b/build.bat index 93990eaf..d1162e2f 100644 --- a/build.bat +++ b/build.bat @@ -1,5 +1,5 @@ @echo off -call "%~dp0\gradlew" clean + call "%~dp0\gradlew" assembleRelease --no-daemon diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index 5afd6461832f361e6d51b2cda0febb2fbbdae662..0c04da05d065b502ac7cdf154518abf55eb546a5 100644 GIT binary patch literal 510630 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

1CYx_?lJ=uM8M?B+ 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

byog!;#Uq`3d=d^BzcGO0( z5BzanpHFizyDcE>ji{BruFb6Kx7;ynuE>hG?hS3*qx+R_4EY&_Zj5od-+HN7+;TDT zCx#y=l3GO`UX0#fBS`0HHTAP*zM1#XB@c5o?5FIQXSCToJ^uSR$=ELBy+CFV%~960 ztkA)&$YmQnM*3^fMj0B>34M{_wM9lDPhM+wk=q{WF7f-=$3{^sz#ThKvtJal4h@Hf zi(T-V)`kgnvAo+aM)&+{LZe0=aFg)EI5^HM^;7;#aQ!LP8?AvvPzXdGyKgY8{}$03 zzNt_?YjyRZS$>o4(|{x{wHZ9rRzsLCvC-ZHS&#c@RLCXDSf=0X;m`%lP<_dUMPteD zDZDWh4i)EA;gZZpb^FzSY#wS)evsj4AV)jO6Mxz8Um{Cu3f)e6fU`lJsnos*MTh} z%95|udR2f@VhtC@Zrsty455oXOe{B9Vm+(YTO$7gaQ5jDV%eV2JA5HVps$W4E*A`pV1NY;BhWXM-?n=PE0(&%pyi>mku+-