From 068efd0503c0fc090b49b75a3b661a718781ac6d Mon Sep 17 00:00:00 2001 From: qaiu <736226400@qq.com> Date: Tue, 9 Apr 2024 12:13:26 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E5=8D=87=E7=BA=A7vertx=E5=88=B04.5.6=20-?= =?UTF-8?q?=20=E6=B7=BB=E5=8A=A0Cloudreve=20-=20=E8=93=9D=E5=A5=8F?= =?UTF-8?q?=E4=BA=91=E4=BC=98=E4=BA=AB=E5=92=8C=E5=B0=8F=E9=A3=9E=E6=9C=BA?= =?UTF-8?q?=E8=A7=84=E5=88=99=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 73 ++++++++++++------- core-database/pom.xml | 2 +- .../main/java/cn/qaiu/parser/IPanTool.java | 4 + .../src/main/java/cn/qaiu/parser/PanBase.java | 6 ++ .../main/java/cn/qaiu/parser/impl/CeTool.java | 73 +++++++++++++++++++ .../main/java/cn/qaiu/parser/impl/FjTool.java | 11 ++- .../main/java/cn/qaiu/parser/impl/IzTool.java | 10 ++- .../main/java/cn/qaiu/util/CommonUtils.java | 6 ++ pom.xml | 2 +- .../java/cn/qaiu/lz/web/http/ServerApi.java | 26 +++---- .../src/main/resources/http-tools/pan-ce.http | 19 +++++ .../src/main/resources/http-tools/pan-fj.http | 23 +++++- .../src/main/resources/http-tools/pan-iz.http | 9 +++ .../src/main/resources/http-tools/pan-jg.http | 17 +++++ .../src/main/resources/http-tools/test.http | 14 ++++ web-service/src/main/resources/logback.xml | 2 +- 16 files changed, 246 insertions(+), 51 deletions(-) create mode 100644 parser/src/main/java/cn/qaiu/parser/impl/CeTool.java create mode 100644 web-service/src/main/resources/http-tools/pan-ce.http create mode 100644 web-service/src/main/resources/http-tools/pan-jg.http diff --git a/README.md b/README.md index 8fc7e6f..990030f 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,15 @@ 云盘解析服务 (nfd云解析) -预览地址 https://lz.qaiu.top -注意: lz.qaiu.top因解析量过大IP已被123和小飞机禁止访问, -请不要过度依赖预览地址服务,建议本地搭建或者云服务器自行搭建 +预览地址 https://lz.qaiu.top +**注意: 请不要过度依赖lz.qaiu.top预览地址服务,建议本地搭建或者云服务器自行搭建。 +解析次数过多IP会被部分网盘厂商限制,不推荐做公共解析。** [![Java CI with Maven](https://github.com/qaiu/netdisk-fast-download/actions/workflows/maven.yml/badge.svg)](https://github.com/qaiu/netdisk-fast-download/actions/workflows/maven.yml) [![jdk](https://img.shields.io/badge/jdk-%3E%3D17-blue)](https://www.oracle.com/cn/java/technologies/downloads/) -[![vert.x](https://img.shields.io/badge/vert.x-4.5.0-blue)](https://vertx-china.github.io/) +[![vert.x](https://img.shields.io/badge/vert.x-4.5.6-blue)](https://vertx-china.github.io/) [![GitHub release (latest by date)](https://img.shields.io/github/v/release/qaiu/netdisk-fast-download)](https://github.com/qaiu/netdisk-fast-download/releases/tag/0.1.6-releases) ## 项目介绍 -网盘直链解析工具能把网盘分享下载链接转化为直链,已支持蓝奏云/蓝奏云优享/奶牛快传/移动云云空间/小飞机盘/亿方云/123云盘等,支持私密分享。 +网盘直链解析工具能把网盘分享下载链接转化为直链,已支持蓝奏云/蓝奏云优享/奶牛快传/移动云云空间/小飞机盘/亿方云/123云盘/Cloudreve等,支持加密分享。 *重要声明:本项目仅供学习参考;请不要将此项目用于任何商业用途,否则可能带来严重的后果。* @@ -33,9 +33,6 @@ - [移动云空间 (ec)](https://www.ecpan.cn/web) - [ ] 登录, 上传, 下载, 分享 - [X] 直链解析 -- [UC网盘 (uc)似乎已经失效,需要登录](https://fast.uc.cn/) - - [ ] 登录, 上传, 下载, 分享 - - [X] 直链解析 - [小飞机网盘 (fj)](https://www.feijipan.com/) - [ ] 登录, 上传, 下载, 分享 - [X] 直链解析 @@ -45,42 +42,57 @@ - [123云盘 (ye)](https://www.123pan.com/) - [ ] 登录, 上传, 下载, 分享 - [X] 直链解析 -- [文叔叔 (ws) 开发中](https://www.wenshushu.cn/) +- [文叔叔 (ws)](https://www.wenshushu.cn/) - [ ] 登录, 上传, 下载, 分享 - [X] 直链解析 -- [QQ邮箱 (qq) 开发中](https://wx.mail.qq.com/) +- [Cloudreve自建网盘 (ce)](https://github.com/cloudreve/Cloudreve) + - [ ] 登录, 上传, 下载, 分享 + - [X] 直链解析 +- [QQ邮箱 (qq) 暂不可用-存在cookie问题](https://wx.mail.qq.com/) - [ ] 登录, 上传, 下载, 分享 - [X] 直链解析(用户无法直接使用直链) -- [夸克网盘 (qk) 开发中](https://pan.quark.cn/) +- [夸克网盘 (qk) 寄了](https://pan.quark.cn/) +- [UC网盘 (uc) 寄了](https://fast.uc.cn/) **TODO:** - 登录接口, 文件上传/下载/分享后端接口 - 短地址服务 - 前端界面(建设中...) -**技术栈:** -Jdk17+Vert.x4.4.1 -Core模块集成Vert.x实现类似spring的注解式路由API - -API接口 - +### API接口说明 +your_host指的是您的域名或者IP,实际使用时替换为实际域名或者IP。 +解析方式分为两种类型直接跳转下载链接和获取下载链接(JSON),每一种都提供了两种接口形式parser和网盘标志/分享key拼接的短地址(标志短链),所有规则参考示例。 +- 通用接口: `/parser?url=分享链接`,加密分享需要加上参数pwd=密码; +- 标志短链: `/网盘标识/分享key` 在分享Key后面加上@密码; +- 直链JSON: `通用接口`和`标志短链`前加上`/json` 加密分享的密码规则同上; +- 网盘标识参考上面网盘支持情况 +- 括号内是可选内容: 表示当带有分享密码时需要加上密码参数 +- 移动云空间,小飞机网盘的加密分享的密码可以忽略 + +规则示例: ``` -网盘标识参考上面网盘支持情况, 括号内是可选内容: 表示当带有分享密码时需要加上密码参数 -parser接口可以直接解析分享链接: 加密分享需要加上参数pwd=密码; -其他接口在分享Key后面加上@密码; 1. 解析并自动302跳转 : - http(s)://your_host/parser?url=分享链接(&pwd=xxx) - http(s)://your_host/网盘标识/分享key(@分享密码) + http://your_host/parser?url=分享链接(&pwd=xxx) + http://your_host/网盘标识/分享key(@分享密码) 2. 获取解析后的直链--JSON格式 - http(s)://your_host/json/parser?url=分享链接(&pwd=xxx) - http(s)://your_host/json/网盘标识/分享key(@分享密码) -3. 特别注意的地方: - - 有些网盘的加密分享的密码可以忽略: 如移动云空间,小飞机网盘 - - 移动云空间(ec)使用parser?url= 解析时因为分享链接比较特殊(链接带有参数且含有#符号)所以要么对#进行转义%23要么直接去掉# 或者URL直接是主机名+'/'跟一个data参数 + http://your_host/json/parser?url=分享链接(&pwd=xxx) + http://your_host/json/网盘标识/分享key(@分享密码) +3. 需要特殊处理的网盘分享: + 1. 移动云空间(ec)使用parser?url= 解析时因为分享链接比较特殊(链接带有参数且含有#符号)所以要么对#进行转义%23要么直接去掉# 或者URL直接是主机名+'/'跟一个data参数 比如 http://your_host/parser?url=https://www.ecpan.cn/web//yunpanProxy?path=%2F%23%2Fdrive%2Foutside&data=81027a5c99af5b11ca004966c945cce6W9Bf2&isShare=1 http://your_host/parser?url=https://www.ecpan.cn/web/%23/yunpanProxy?path=%2F%23%2Fdrive%2Foutside&data=81027a5c99af5b11ca004966c945cce6W9Bf2&isShare=1 http://your_host/parser?url=https://www.ecpan.cn/&data=81027a5c99af5b11ca004966c945cce6W9Bf2&isShare=1 + + 2. Cloudreve自建网盘解析规则: + 1. 标志短链: 根据网盘使用https和http选择 http://your_host/ce/https_网盘域名_s_wDz5TK 或 http://your_host/ce/http_网盘域名_s_wDz5TK + 网盘域名指的是Cloudreve搭建网盘的主域名比如pan.huang1111.cn,如果存在子路径需要将/替换为_,是否存在子路径看分享链接格式是否是://网盘域名/子路径/s/xxx,一般不存在子路径:网盘域名/s/xxx, + 比如: http://127.0.0.1:6400/ce/https_pan.huang1111.cn_s_wDz5TK + 2. parser接口 -> http://your_host/parser?url=分享链接(&pwd=xxx) + 比如: http://127.0.0.1:6400/parser?url=https://pan.huang1111.cn/s/wDz5TK + + + ``` json返回数据格式示例: ```json @@ -205,6 +217,12 @@ bash service-install.sh - 直链缓存 - 日志优化 + +**技术栈:** +Jdk17+Vert.x4.4.1 +Core模块集成Vert.x实现类似spring的注解式路由API + + ## Star History [![Star History Chart](https://api.star-history.com/svg?repos=qaiu/netdisk-fast-download&type=Date)](https://star-history.com/#qaiu/netdisk-fast-download&Date) @@ -212,7 +230,6 @@ bash service-install.sh ## 支持该项目 本项目长期维护如果觉得有帮助, 可以请作者喝杯咖啡, 感谢支持 -支付宝发大额红包了...就这几天, 不要错过哦 ![image](https://github.com/qaiu/netdisk-fast-download/assets/29825328/54276aee-cc3f-4ebd-8973-2e15f6295819) [手机端支付宝打赏跳转链接](https://qr.alipay.com/fkx01882dnoxxtjenhlxt53) diff --git a/core-database/pom.xml b/core-database/pom.xml index 09cf41f..281d980 100644 --- a/core-database/pom.xml +++ b/core-database/pom.xml @@ -16,7 +16,7 @@ UTF-8 2.0.5 3.12.0 - 4.5.0 + 4.5.6 diff --git a/parser/src/main/java/cn/qaiu/parser/IPanTool.java b/parser/src/main/java/cn/qaiu/parser/IPanTool.java index 283e17f..d01a57e 100644 --- a/parser/src/main/java/cn/qaiu/parser/IPanTool.java +++ b/parser/src/main/java/cn/qaiu/parser/IPanTool.java @@ -20,6 +20,7 @@ static IPanTool typeMatching(String type, String key, String pwd) { case "ws" -> new WsTool(key, pwd); case "qq" -> new QQTool(key, pwd); case "iz" -> new IzTool(key, pwd); + case "ce" -> new CeTool(key, pwd); default -> { throw new UnsupportedOperationException("未知分享类型"); } @@ -50,6 +51,9 @@ static IPanTool shareURLPrefixMatching(String url, String pwd) { return new WsTool(url, pwd); } else if (url.contains(QQTool.SHARE_URL_PREFIX)) { return new QQTool(url, pwd); + } else if (url.contains("/s/")) { + // Cloudreve 网盘通用解析 + return new CeTool(url, pwd); } throw new UnsupportedOperationException("未知分享类型"); diff --git a/parser/src/main/java/cn/qaiu/parser/PanBase.java b/parser/src/main/java/cn/qaiu/parser/PanBase.java index 5102fd5..8d8faa1 100644 --- a/parser/src/main/java/cn/qaiu/parser/PanBase.java +++ b/parser/src/main/java/cn/qaiu/parser/PanBase.java @@ -6,6 +6,7 @@ import io.vertx.core.Promise; import io.vertx.ext.web.client.WebClient; import io.vertx.ext.web.client.WebClientOptions; +import io.vertx.ext.web.client.WebClientSession; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -23,6 +24,11 @@ public abstract class PanBase { */ protected WebClient client = WebClient.create(WebClientVertxInit.get()); + /** + * Http client session (会话管理, 带cookie请求) + */ + protected WebClientSession clientSession = WebClientSession.create(client); + /** * Http client 不自动跳转 */ diff --git a/parser/src/main/java/cn/qaiu/parser/impl/CeTool.java b/parser/src/main/java/cn/qaiu/parser/impl/CeTool.java new file mode 100644 index 0000000..c147cc8 --- /dev/null +++ b/parser/src/main/java/cn/qaiu/parser/impl/CeTool.java @@ -0,0 +1,73 @@ +package cn.qaiu.parser.impl; + +import cn.qaiu.parser.IPanTool; +import cn.qaiu.parser.PanBase; +import io.vertx.core.Future; +import io.vertx.core.buffer.Buffer; +import io.vertx.core.json.JsonObject; +import io.vertx.ext.web.client.HttpRequest; + +import java.net.MalformedURLException; +import java.net.URL; + +/** + * Cloudreve网盘解析
+ * 暮希云盘
+ * huang1111
+ */ +public class CeTool extends PanBase implements IPanTool { + + private static final String DOWNLOAD_API_PATH = "/api/v3/share/download/"; + + // api/v3/share/info/g31PcQ?password=qaiu + private static final String SHARE_API_PATH = "/api/v3/share/info/"; + + public CeTool(String key, String pwd) { + super(key, pwd); + } + + public Future parse() { + // https://pan.huang1111.cn/s/wDz5TK + // https://pan.huang1111.cn/s/y12bI6 -> https://pan.huang1111 + // .cn/api/v3/share/download/y12bI6?path=undefined%2Fundefined; + // 类型解析 -> /ce/https_pan.huang1111.cn_s_wDz5TK + // parser接口 -> /parser?url=https://pan.huang1111.cn/s/wDz5TK + try { + if (key.startsWith("https_") || key.startsWith("http_")) { + key = key.replace("https_", "https://") + .replace("http_", "http://") + .replace("_", "/"); + } + // 处理URL + URL url = new URL(key); + String path = url.getPath(); + String shareKey = path.substring(3); + String downloadApiUrl = url.getProtocol() + "://" + url.getHost() + DOWNLOAD_API_PATH + shareKey + "?path" + + "=undefined/undefined;"; + String shareApiUrl = url.getProtocol() + "://" + url.getHost() + SHARE_API_PATH + shareKey; + + // 设置cookie + HttpRequest httpRequest = clientSession.getAbs(shareApiUrl); + if (pwd != null) { + httpRequest.addQueryParam("password", pwd); + } + // 获取下载链接 + httpRequest.send().onSuccess(res -> getDownURL(downloadApiUrl)).onFailure(handleFail(shareApiUrl)); + } catch (MalformedURLException e) { + fail(e, "URL解析错误"); + } + return promise.future(); + } + + private void getDownURL(String apiUrl) { + clientSession.putAbs(apiUrl).send().onSuccess(res -> { + JsonObject jsonObject = res.bodyAsJsonObject(); + System.out.println(jsonObject.encodePrettily()); + if (jsonObject.containsKey("code") && jsonObject.getInteger("code") == 0) { + promise.complete(jsonObject.getString("data")); + } else { + fail("JSON解析失败: {}", jsonObject.encodePrettily()); + } + }).onFailure(handleFail(apiUrl)); + } +} diff --git a/parser/src/main/java/cn/qaiu/parser/impl/FjTool.java b/parser/src/main/java/cn/qaiu/parser/impl/FjTool.java index 634a333..97c15d2 100644 --- a/parser/src/main/java/cn/qaiu/parser/impl/FjTool.java +++ b/parser/src/main/java/cn/qaiu/parser/impl/FjTool.java @@ -20,7 +20,8 @@ public class FjTool extends PanBase implements IPanTool { public static final String SHARE_URL_PREFIX = "https://www.feijix.com/s/"; - public static final String SHARE_URL_PREFIX2 = "https://share.feijipan.com/s/"; + public static final String REFERER_URL = "https://share.feijipan.com/"; + public static final String SHARE_URL_PREFIX2 = REFERER_URL + "s/"; private static final String API_URL_PREFIX = "https://api.feijipan.com/ws/"; private static final String FIRST_REQUEST_URL = API_URL_PREFIX + "recommend/list?devType=6&devModel=Chrome&extra" + @@ -57,15 +58,21 @@ public Future parse() { return; } // 文件Id - String fileId = resJson.getJsonArray("list").getJsonObject(0).getString("fileIds"); + JsonObject fileInfo = resJson.getJsonArray("list").getJsonObject(0); + String fileId = fileInfo.getString("fileIds"); + String userId = fileInfo.getString("userId"); // 其他参数 long nowTs = System.currentTimeMillis(); String tsEncode = AESUtils.encrypt2Hex(Long.toString(nowTs)); String uuid = UUID.randomUUID().toString(); String fidEncode = AESUtils.encrypt2Hex(fileId + "|"); String auth = AESUtils.encrypt2Hex(fileId + "|" + nowTs); + + MultiMap headers0 = MultiMap.caseInsensitiveMultiMap(); + headers0.set("referer", REFERER_URL); // 第二次请求 client.getAbs(UriTemplate.of(SECOND_REQUEST_URL)) + .putHeaders(headers0) .setTemplateParam("fidEncode", fidEncode) .setTemplateParam("uuid", uuid) .setTemplateParam("ts", tsEncode) diff --git a/parser/src/main/java/cn/qaiu/parser/impl/IzTool.java b/parser/src/main/java/cn/qaiu/parser/impl/IzTool.java index 0980e57..f101736 100644 --- a/parser/src/main/java/cn/qaiu/parser/impl/IzTool.java +++ b/parser/src/main/java/cn/qaiu/parser/impl/IzTool.java @@ -13,9 +13,8 @@ import java.util.UUID; /** - * 小飞机网盘 + * 蓝奏云优享 * - * @version V016_230609 */ public class IzTool extends PanBase implements IPanTool { @@ -51,12 +50,15 @@ public Future parse() { return; } // 文件Id - String fileId = resJson.getJsonArray("list").getJsonObject(0).getString("fileIds"); + JsonObject fileInfo = resJson.getJsonArray("list").getJsonObject(0); + String fileId = fileInfo.getString("fileIds"); + String userId = fileInfo.getString("userId"); // 其他参数 long nowTs = System.currentTimeMillis(); String tsEncode = AESUtils.encrypt2HexIz(Long.toString(nowTs)); String uuid = UUID.randomUUID().toString(); - String fidEncode = AESUtils.encrypt2HexIz(fileId + "|"); +// String fidEncode = AESUtils.encrypt2HexIz(fileId + "|"); + String fidEncode = AESUtils.encrypt2HexIz(fileId + "|" + userId); String auth = AESUtils.encrypt2HexIz(fileId + "|" + nowTs); // 第二次请求 client.getAbs(UriTemplate.of(SECOND_REQUEST_URL)) diff --git a/parser/src/main/java/cn/qaiu/util/CommonUtils.java b/parser/src/main/java/cn/qaiu/util/CommonUtils.java index 4879b18..1baf994 100644 --- a/parser/src/main/java/cn/qaiu/util/CommonUtils.java +++ b/parser/src/main/java/cn/qaiu/util/CommonUtils.java @@ -7,6 +7,12 @@ public class CommonUtils { + /** + * 获取分享key 比如: https://www.ilanzou.com/s/xxx -> xxx + * @param urlPrefix 不包含key的URL前缀 + * @param url 完整URL + * @return 分享key + */ public static String adaptShortPaths(String urlPrefix, String url) { if (url.endsWith(".html")) { url = url.substring(0, url.length() - 5); diff --git a/pom.xml b/pom.xml index ec6a4ce..190129d 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ ${project.basedir}/web-service/target/package 2.0.5 - 4.5.0 + 4.5.6 0.10.2 1.18.12 2.0.5 diff --git a/web-service/src/main/java/cn/qaiu/lz/web/http/ServerApi.java b/web-service/src/main/java/cn/qaiu/lz/web/http/ServerApi.java index 6643ac0..103a5ce 100644 --- a/web-service/src/main/java/cn/qaiu/lz/web/http/ServerApi.java +++ b/web-service/src/main/java/cn/qaiu/lz/web/http/ServerApi.java @@ -37,9 +37,9 @@ public Future parse(HttpServerResponse response, HttpServerRequest request "&code=" + request.getParam("code") + "&k=" + request.getParam("k") + "&fweb=" + request.getParam("fweb") + "&cl=" + request.getParam("cl"); } - IPanTool.shareURLPrefixMatching(url, pwd).parse().onSuccess(resUrl -> { - ResponseUtil.redirect(response, resUrl, promise); - }).onFailure(t -> promise.fail(t.fillInStackTrace())); + IPanTool.shareURLPrefixMatching(url, pwd).parse() + .onSuccess(resUrl -> ResponseUtil.redirect(response, resUrl, promise)) + .onFailure(t -> promise.fail(t.fillInStackTrace())); return promise.future(); } @@ -52,6 +52,16 @@ public Future parseJson(HttpServerRequest request, String url, String pw return IPanTool.shareURLPrefixMatching(url, pwd).parse(); } + @RouteMapping(value = "/json/:type/:key", method = RouteMethod.GET, order = 2) + public Future parseKeyJson(String type, String key) { + String code = ""; + if (key.contains("@")) { + String[] keys = key.split("@"); + key = keys[0]; + code = keys[1]; + } + return IPanTool.typeMatching(type, key, code).parse(); + } @RouteMapping(value = "/:type/:key", method = RouteMethod.GET, order = 1) public Future parseKey(HttpServerResponse response, String type, String key) { @@ -69,14 +79,4 @@ public Future parseKey(HttpServerResponse response, String type, String ke return promise.future(); } - @RouteMapping(value = "/json/:type/:key", method = RouteMethod.GET, order = 2) - public Future parseKeyJson(String type, String key) { - String code = ""; - if (key.contains("@")) { - String[] keys = key.split("@"); - key = keys[0]; - code = keys[1]; - } - return IPanTool.typeMatching(type, key, code).parse(); - } } diff --git a/web-service/src/main/resources/http-tools/pan-ce.http b/web-service/src/main/resources/http-tools/pan-ce.http new file mode 100644 index 0000000..c0da41d --- /dev/null +++ b/web-service/src/main/resources/http-tools/pan-ce.http @@ -0,0 +1,19 @@ +### +https://5jmpj3-my.sharepoint.com/personal/pan2_xiaomuxi_cn/_layouts/15/download.aspx?UniqueId=cf123281-44cd-4745-b3c3-49a18934044d&Translate=false&tempauth=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiIwMDAwMDAwMy0wMDAwLTBmZjEtY2UwMC0wMDAwMDAwMDAwMDAvNWptcGozLW15LnNoYXJlcG9pbnQuY29tQGY4MTk4OWJiLWViNDAtNGZhYi05NzA5LTQ0ODFhMDM0ZjNiNCIsImlzcyI6IjAwMDAwMDAzLTAwMDAtMGZmMS1jZTAwLTAwMDAwMDAwMDAwMCIsIm5iZiI6IjE3MDY0MzIyNDciLCJleHAiOiIxNzA2NDM1ODQ3IiwiZW5kcG9pbnR1cmwiOiJNMWVwZ3VjamFKU081MXB4WW5IKzZ6bzZBQlVyc0N1T3MwOVRGbnZJVlRvPSIsImVuZHBvaW50dXJsTGVuZ3RoIjoiMTQ2IiwiaXNsb29wYmFjayI6IlRydWUiLCJjaWQiOiJKM0JzNzloTy8wYW1GZGh1WUFjTjR3PT0iLCJ2ZXIiOiJoYXNoZWRwcm9vZnRva2VuIiwic2l0ZWlkIjoiWkRkaVptRTBNRFl0TXpWall5MDBZamMxTFRsbU16TXRNRGc0TlRCbVkyRmlPVE0yIiwiYXBwX2Rpc3BsYXluYW1lIjoiMuWPt-WtmOWCqOehrOebmCIsImdpdmVuX25hbWUiOiIy5Y-3IiwiZmFtaWx5X25hbWUiOiLnvZHnm5giLCJhcHBpZCI6ImJkZDRjOTA5LTA0ZjItNDU4NS04MjZlLTY0MDQzNDljN2JiZiIsInRpZCI6ImY4MTk4OWJiLWViNDAtNGZhYi05NzA5LTQ0ODFhMDM0ZjNiNCIsInVwbiI6InBhbjJAeGlhb211eGkuY24iLCJwdWlkIjoiMTAwMzIwMDJBRTUyNDMwRCIsImNhY2hla2V5IjoiMGguZnxtZW1iZXJzaGlwfDEwMDMyMDAyYWU1MjQzMGRAbGl2ZS5jb20iLCJzY3AiOiJhbGxmaWxlcy53cml0ZSIsInR0IjoiMiIsImlwYWRkciI6IjIwLjE5MC4xNDQuMTcxIn0.WY--gv_Ac1pwhj3XTOdIddaj643CHoOqBeFFpdSa4-w&ApiVersion=2.0 + +### +#@no-redirect +PUT https://pan.xiaomuxi.cn/api/v3/share/download/Ag4Uy + +### +PUT https://pan.huang1111.cn/api/v3/share/download/m1Mlt1 + + +### +https://pan.huang1111.cn/api/v3/share/info/g31PcQ?password=qaiu + +### +https://pan.huang1111.cn/api/v3/share/info/m1Mlt1?password= + +### +PUT https://pan.huang1111.cn/api/v3/share/download/g31PcQ?path=undefined%2Fundefined diff --git a/web-service/src/main/resources/http-tools/pan-fj.http b/web-service/src/main/resources/http-tools/pan-fj.http index 0d99411..753cb9f 100644 --- a/web-service/src/main/resources/http-tools/pan-fj.http +++ b/web-service/src/main/resources/http-tools/pan-fj.http @@ -11,7 +11,7 @@ # offset: 1 # limit: 60 # @no-cookie-jar -POST https://api.feijipan.com/ws/recommend/list?devType=6&devModel=Chrome&extra=2&shareId=193186&type=0&offset=1&limit=60 +POST https://api.feijipan.com/ws/recommend/list?devType=6&devModel=Chrome&extra=2&shareId=146731&type=0&offset=1&limit=60 # 654488C79332E7279F9A38367BD72D3B # 4703B103BD6871F83441233393695EF3 @@ -37,4 +37,25 @@ https://web.feejii.com/ee433d6e5102ad79af58a2aa0e6cf758/1686279412/files/2023/05 +### 7jy0zlv +https://api.feijipan.com/ws/recommend/list?devType=6&devModel=Chrome&extra=2&shareId=146731 + ### +# @no-redirect +https://api.feijipan.com/ws/file/redirect?downloadId=4703B103BD6871F83441233393695EF3&enable=1&devType=6&uuid=ZIdOV27C5dHvd3aUUXoiP×tamp=4FDB14DD6441E581458CD2750EAF188A&auth=42965E158C74872285C5A3F545118CAAF417B148DBEEBF90B0969E08950830E5 +Referer: https://share.feijipan.com/ + +### +# @no-redirect +https://api.feijipan.com/ws/file/redirect?uuid=6591af86-5464-4c8d-a100-44f6cb859e9b&devType=6&devCode=6591af86-5464-4c8d-a100-44f6cb859e9b&devModel=chrome&devVersion=122&appVersion=×tamp=77d605733113552383e2626fe134cfc3&appToken=9a253a6202bc1095030a8e8d76fe7f38-1&enable=1&downloadId=79d91c3dc8b578d4c69b04b8251f04e029de3c08240dc9ceab77f7f656cbba23&auth=ccfd80a4787abfb1b86970902e3156ff155ae85ef80ebd661d3bc33de20659a1 +Referer: https://share.feijipan.com/ + + +### +POST https://api.feijipan.com/ws/login?uuid=6591af86-5464-4c8d-a100-44f6cb859e9b&devType=6&devCode=6591af86-5464-4c8d-a100-44f6cb859e9b&devModel=chrome&devVersion=122&appVersion=×tamp=2e6932b46c0bc20d9cbcdb6c5f0e9bee&appToken=&extra=2 +Accept:application/json, text/plain, */* +Content-Type:application/json +Origin:https://www.feijipan.com +Referer:https://www.feijipan.com/ + +{"loginName":"15687886400","loginPwd":"4458225ff"} diff --git a/web-service/src/main/resources/http-tools/pan-iz.http b/web-service/src/main/resources/http-tools/pan-iz.http index 34a4af8..14a2dfe 100644 --- a/web-service/src/main/resources/http-tools/pan-iz.http +++ b/web-service/src/main/resources/http-tools/pan-iz.http @@ -16,3 +16,12 @@ https://api.ilanzou.com/unproved/file/redirect?downloadId=DC3D647979EE315935D168 #@no-redirect https://dl.lanosso.com/disk/2024/01/28/9/14733029/1706414002788330.gz?attname=testgles.c&sign=9ef76e9a270dbe5e9401c8f4c2ae0d68&t=65b5f826 +### +#@no-redirect +https://api.ilanzou.com/unproved/file/redirect?uuid=0&devType=6×tamp=4532409118d790651b6b50823bf6a555&downloadId=d16fcb8f3e00da0eb956db9a0541f97277437b80f7fe61438b7fba55856e050f&auth=a4c567681b3ba556b5d70cff93e909774a6695647300260c5f0abfe3c188f1a0 + + +### +https://www.ilanzou.com/s/zHkna1S + +### fileId: 145042258 diff --git a/web-service/src/main/resources/http-tools/pan-jg.http b/web-service/src/main/resources/http-tools/pan-jg.http new file mode 100644 index 0000000..89ed2f7 --- /dev/null +++ b/web-service/src/main/resources/http-tools/pan-jg.http @@ -0,0 +1,17 @@ + + +### 坚果云直链 +GET https://www.jianguoyun.com/c/dl-file/bin.zip?dt=s80etr&sd=ekfj3&kv=NzM2MjI2NDAwQHFxLmNvbQ&vr=1&ud=Ai4TqB3nzfSF6iR0zapyvKGPYKP_cUqKIhtziVb1dRA + + +### + +https://www.jianguoyun.com/d/ajax/dlink?sndId=175599f&sndMagic=2d8381e894e47b39&path=%2Fbin.zip&forwin=true&_=1706507895357 +Cookie:umn=736226400%40qq.com; ta=G0RPJtiW0%2FEqRmv4amZpcXTLHhuOxhQCSTJX3IU5HVo%3D; + +### +https://www.jianguoyun.com/d/ajax/fileops/pubFileLink?k=DSBBfXkQn7PVCxjz24cFIAA +Cookie:umn=736226400%40qq.com; ta=G0RPJtiW0%2FEqRmv4amZpcXTLHhuOxhQCSTJX3IU5HVo%3D; + +### +https://www.jianguoyun.com/d/signup?next=%2Fp%2FDSBBfXkQn7PVCxjz24cFIAA&msg=%E7%99%BB%E5%BD%95%E5%90%8E%E7%AB%8B%E5%8D%B3%E4%B8%8B%E8%BD%BD%E6%96%87%E4%BB%B6 diff --git a/web-service/src/main/resources/http-tools/test.http b/web-service/src/main/resources/http-tools/test.http index 015c5eb..4f66dc8 100644 --- a/web-service/src/main/resources/http-tools/test.http +++ b/web-service/src/main/resources/http-tools/test.http @@ -25,6 +25,10 @@ GET http://127.0.0.1:6400/json/iz/lGFndCM ### GET http://127.0.0.1:6400/json/parser?url=https://www.ilanzou.com/s/lGFndCM +### +GET http://127.0.0.1:6400/json/parser?url=https://www.ilanzou.com/s/6XwnC4X +### +GET http://127.0.0.1:6400/json/parser?url=https://www.ilanzou.com/s/zHkna1S ### 奶牛 GET http://127.0.0.1:6400/json/cow/9a644fe3e3a748 @@ -71,8 +75,13 @@ GET http://127.0.0.1:6400/parser?url=https://fast.uc.cn/s/33197dd53ace4 # @no-redirect GET http://127.0.0.1:6400/parser?url=https://share.feijipan.com/s/nMtCOXL +### 小飞机盘 https://share.feijipan.com/s/laUshYGk +# @no-redirect +GET http://127.0.0.1:6400/parser?url=https://share.feijipan.com/s/laUshYGk ### 小飞机盘 GET http://127.0.0.1:6400/json/fj/tIfhRqH +### 小飞机盘 https://share.feijipan.com/s/7jy0zlv +GET http://127.0.0.1:6400/json/fj/7jy0zlv ### 小飞机盘 # @no-redirect @@ -133,6 +142,11 @@ GET http://127.0.0.1:6400/le/2RkKbLP9BrppS9b43@ex2b ### 联想乐云 GET http://127.0.0.1:6400/json/le/2RkKbLP9BrppS9b43@ex2b +### Cloudreve +GET http://127.0.0.1:6400/json/ce/https_pan.huang1111.cn_s_wDz5TK + +### Cloudreve +GET http://127.0.0.1:6400/json/parser?url=https://pan.huang1111.cn/s/g31PcQ&pwd=qaiu ### GET http://127.0.0.1:6400/v2/statisticsInfo diff --git a/web-service/src/main/resources/logback.xml b/web-service/src/main/resources/logback.xml index 4b05965..2e7a0e8 100644 --- a/web-service/src/main/resources/logback.xml +++ b/web-service/src/main/resources/logback.xml @@ -46,7 +46,7 @@ - true + false ${CUSTOMER_PATTERN2}