mirror of
https://github.com/qaiu/netdisk-fast-download.git
synced 2025-12-16 04:13:03 +00:00
🚀 核心功能 - 新增完整的客户端下载链接生成器系统 - 支持ARIA2、Motrix、比特彗星、迅雷、wget、cURL、IDM、FDM、PowerShell等8种客户端 - 自动处理防盗链参数(User-Agent、Referer、Cookie等) - 提供可扩展的生成器架构,支持自定义客户端 🔧 技术实现 - ClientLinkGeneratorFactory: 工厂模式管理生成器 - DownloadLinkMeta: 元数据存储下载信息 - ClientLinkUtils: 便捷工具类 - 线程安全的ConcurrentHashMap设计 🌐 前端集成 - 新增ClientLinks.vue界面,支持客户端链接展示 - Element Plus图标系统,混合图标显示 - 客户端检测逻辑优化,避免自动打开外部应用 - 移动端和PC端环境判断 📚 文档完善 - 完整的CLIENT_LINK_GENERATOR_GUIDE.md使用指南 - API文档和测试用例 - 输出示例和最佳实践 从单纯的网盘解析工具升级为完整的下载解决方案生态
38 lines
1.6 KiB
Java
38 lines
1.6 KiB
Java
import cn.qaiu.entity.ShareLinkInfo;
|
||
import cn.qaiu.parser.clientlink.ClientLinkGeneratorFactory;
|
||
import cn.qaiu.parser.clientlink.DownloadLinkMeta;
|
||
import java.util.Map;
|
||
|
||
public class TestClientLinks {
|
||
public static void main(String[] args) {
|
||
// 创建一个测试用的 ShareLinkInfo,模拟解析器没有实现客户端下载文件元数据的情况
|
||
ShareLinkInfo shareLinkInfo = ShareLinkInfo.newBuilder()
|
||
.shareUrl("https://example.com/share/test123")
|
||
.panName("测试网盘")
|
||
.type("test")
|
||
.build();
|
||
|
||
// 添加文件名信息(模拟解析器只解析了文件名)
|
||
shareLinkInfo.getOtherParam().put("fileInfo", new cn.qaiu.entity.FileInfo() {
|
||
@Override
|
||
public String getFileName() {
|
||
return "test-file.zip";
|
||
}
|
||
});
|
||
|
||
// 测试 DownloadLinkMeta.fromShareLinkInfo() 方法
|
||
DownloadLinkMeta meta = DownloadLinkMeta.fromShareLinkInfo(shareLinkInfo);
|
||
System.out.println("DownloadLinkMeta: " + meta);
|
||
System.out.println("Has valid URL: " + meta.hasValidUrl());
|
||
|
||
// 测试生成客户端链接
|
||
Map<cn.qaiu.parser.clientlink.ClientLinkType, String> clientLinks =
|
||
ClientLinkGeneratorFactory.generateAll(shareLinkInfo);
|
||
|
||
System.out.println("Generated client links count: " + clientLinks.size());
|
||
for (Map.Entry<cn.qaiu.parser.clientlink.ClientLinkType, String> entry : clientLinks.entrySet()) {
|
||
System.out.println(entry.getKey().getDisplayName() + ": " + entry.getValue());
|
||
}
|
||
}
|
||
}
|