Files
netdisk-fast-download/parser/README.md
q 4fc4ed8640 feat: 添加 WPS 云文档/WPS 云盘解析支持 (closes #133)
- 新增 PwpsTool 解析器,支持 WPS 云文档直链获取
- 调用 WPS API: https://www.kdocs.cn/api/office/file/{shareKey}/download
- 前端添加 kdocs.cn 链接识别规则
- 前端预览功能优化:WPS 云文档直接使用原分享链接预览
- 后端预览接口特殊处理:判断 shareKey 以 pwps: 开头自动重定向
- 支持提取文件名和有效期信息
- 更新 README 文档,添加 WPS 云文档支持说明

Parser 模块设计:
- 遵循开放封闭原则,易于扩展新网盘
- 只需实现 IPanTool 接口和注册枚举即可
- 支持自定义域名解析和责任链模式

技术特性:
- 免登录获取下载直链
- 支持在线预览(利用 WPS 原生功能)
- 文件大小限制:10M(免费版)/2G(会员版)
- 初始空间:5G(免费版)
2025-10-20 13:33:53 +08:00

2.7 KiB
Raw Blame History

parser

NFD 解析器模块:聚合各类网盘/分享页解析,统一输出文件列表与下载信息,供上层下载器使用。

  • 语言Java 17
  • 构建Maven
  • 模块版本10.1.17

依赖Maven Central

<dependency>
  <groupId>cn.qaiu</groupId>
  <artifactId>parser</artifactId>
  <version>10.1.17</version>
</dependency>
  • Gradle Groovy DSL
dependencies {
  implementation 'cn.qaiu:parser:10.1.17'
}
  • Gradle Kotlin DSL
dependencies {
  implementation("cn.qaiu:parser:10.1.17")
}

核心 API 速览

  • WebClientVertxInit注入/获取 Vert.x 实例(内部 HTTP 客户端依赖)。
  • ParserCreate从分享链接或类型构建解析器生成短链 path。
  • IPanTool统一解析接口parse、parseFileList、parseById
  • CustomParserRegistry:自定义解析器注册中心(支持扩展)。
  • CustomParserConfig:自定义解析器配置类(支持扩展)。

使用示例(极简)

Vertx vx = Vertx.vertx();
WebClientVertxInit.init(vx);
IPanTool tool = ParserCreate.fromShareUrl("https://www.lanzoui.com/xxx").createTool();
List<FileInfo> list = tool.parseFileList().toCompletionStage().toCompletableFuture().join();

完整示例与调试脚本见 parser/doc/README.md。

快速开始

  • 环境JDK >= 17Maven >= 3.9
  • 构建/安装:
mvn -pl parser -am clean package
mvn -pl parser -am install
  • 测试:
mvn -pl parser test

自定义解析器扩展

本模块支持用户自定义解析器扩展。通过简单的配置和注册,你可以添加自己的网盘解析实现:

// 1. 实现 IPanTool 接口
public class MyPanTool implements IPanTool {
    public MyPanTool(ShareLinkInfo info) { /* 必须提供此构造器 */ }
    @Override
    public Future<String> parse() { /* 实现解析逻辑 */ }
}

// 2. 注册到系统
CustomParserConfig config = CustomParserConfig.builder()
    .type("mypan")
    .displayName("我的网盘")
    .toolClass(MyPanTool.class)
    .build();
CustomParserRegistry.register(config);

// 3. 使用自定义解析器(仅支持 fromType 方式)
IPanTool tool = ParserCreate.fromType("mypan")
    .shareKey("abc123")
    .createTool();
String url = tool.parseSync();

详细文档: 自定义解析器扩展指南

文档

  • parser/doc/README.md解析约定、示例、IDEA .http 调试
  • parser/doc/CUSTOM_PARSER_GUIDE.md自定义解析器扩展完整指南

目录

  • src/main/java/cn/qaiu/entity通用实体如 FileInfo
  • src/main/java/cn/qaiu/parser解析框架 & 各站点实现impl
  • src/test/java单测与示例

许可证

MIT License