mirror of
https://github.com/qaiu/netdisk-fast-download.git
synced 2026-08-30 05:22:01 +00:00
- 修复 12 处 NPE 风险: FjTool/FsTool/IzTool/LzTool/MkwTool/P115Tool/PdbTool/QQTool/ParserCreate/CommonUtils/ShareLinkInfo/URLParamUtil - 修复 4 处 Vert.x 资源泄漏: 测试类中 Vertx 实例未关闭 - 修复 CacheManager 防重入和 registerPeriodicCleanup 就绪检查 - 修复 ParserApi 中 redirectUrl()/viewUrl() Promise 未 complete - 修复 CacheManager.updateTotalByField Promise 永不完成 - 修复 AppMain ShutdownHook 注册,确保 Vert.x 先于 JDBCPoolInit 关闭 - 修复 RouterHandlerFactory failureHandler 恢复返回 failure message - 修复 ParserCreate/LzTool 收窄 catch 异常类型 - 修复 IzTool/FjTool/IzToolWithAuth 并发安全 (volatile + header 副本) - 修复 P115Tool UA 为 null 时的 NPE,添加默认 User-Agent - Font Awesome CDN 换源为 s4.zstatic.net,避免 bootcdn 投毒风险 - DirectoryTree selectAll 补 parserUrl 检查,Home 组件名 App→Home
174 lines
4.7 KiB
Java
174 lines
4.7 KiB
Java
package cn.qaiu.entity;
|
|
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
|
|
public class ShareLinkInfo {
|
|
|
|
private String shareKey; // 分享键
|
|
|
|
private String panName; // 网盘名称
|
|
private String type; // 分享类型
|
|
private String sharePassword; // 分享密码(如果存在)
|
|
private String shareUrl; // 原始分享链接
|
|
private String standardUrl; // 规范化的标准链接
|
|
|
|
/**
|
|
* 其他参数预定义
|
|
* dirId: 目录ID 传入
|
|
* auths: 认证相关 传入
|
|
* UA: 浏览器请求头 传入
|
|
* fileInfo: 解析成功的文件信息对象 传出
|
|
*/
|
|
private Map<String, Object> otherParam;
|
|
|
|
private ShareLinkInfo(Builder builder) {
|
|
this.shareKey = builder.shareKey;
|
|
this.panName = builder.panName;
|
|
this.type = builder.type;
|
|
this.sharePassword = builder.sharePassword;
|
|
this.shareUrl = builder.shareUrl;
|
|
this.standardUrl = builder.standardUrl;
|
|
this.otherParam = builder.otherParam;
|
|
}
|
|
|
|
// Getter和Setter方法
|
|
|
|
public String getShareKey() {
|
|
return shareKey;
|
|
}
|
|
|
|
public String getPanName() {
|
|
return panName;
|
|
}
|
|
|
|
public void setShareKey(String shareKey) {
|
|
this.shareKey = shareKey;
|
|
}
|
|
|
|
public void setPanName(String panName) {
|
|
this.panName = panName;
|
|
}
|
|
|
|
public String getType() {
|
|
return type;
|
|
}
|
|
|
|
public void setType(String type) {
|
|
this.type = type;
|
|
}
|
|
|
|
public String getSharePassword() {
|
|
return sharePassword;
|
|
}
|
|
|
|
public void setSharePassword(String sharePassword) {
|
|
this.sharePassword = sharePassword;
|
|
}
|
|
|
|
public String getShareUrl() {
|
|
return shareUrl;
|
|
}
|
|
|
|
public void setShareUrl(String shareUrl) {
|
|
this.shareUrl = shareUrl;
|
|
}
|
|
|
|
public String getStandardUrl() {
|
|
return standardUrl;
|
|
}
|
|
|
|
public void setStandardUrl(String standardUrl) {
|
|
this.standardUrl = standardUrl;
|
|
}
|
|
|
|
public String getCacheKey() {
|
|
// 将type和shareKey组合成一个字符串作为缓存key
|
|
String key = type + ":" + shareKey;
|
|
if (type.equals("p115")) {
|
|
Object ua = otherParam != null ? otherParam.get("UA") : null;
|
|
if (ua != null) {
|
|
key += ("_" + ua.toString().hashCode());
|
|
}
|
|
}
|
|
return key;
|
|
}
|
|
|
|
public ShareLinkInfo setOtherParam(Map<String, Object> otherParam) {
|
|
this.otherParam = otherParam;
|
|
return this;
|
|
}
|
|
|
|
public Map<String, Object> getOtherParam() {
|
|
return otherParam;
|
|
}
|
|
|
|
// 静态方法创建建造者对象
|
|
public static ShareLinkInfo.Builder newBuilder() {
|
|
return new ShareLinkInfo.Builder();
|
|
}
|
|
|
|
// 建造者类
|
|
public static class Builder {
|
|
public String panName; // 分享网盘名称
|
|
private String shareKey; // 分享键
|
|
private String type; // 分享类型 (网盘模板枚举的小写)
|
|
private String sharePassword = ""; // 分享密码(如果存在)
|
|
private String shareUrl; // 原始分享链接
|
|
private String standardUrl; // 规范化的标准链接
|
|
private Map<String, Object> otherParam = new HashMap<>(); // 其他参数
|
|
|
|
public Builder shareKey(String shareKey) {
|
|
this.shareKey = shareKey;
|
|
return this;
|
|
}
|
|
|
|
public Builder panName(String panName) {
|
|
this.panName = panName;
|
|
return this;
|
|
}
|
|
|
|
public Builder type(String type) {
|
|
this.type = type;
|
|
return this;
|
|
}
|
|
|
|
public Builder sharePassword(String sharePassword) {
|
|
this.sharePassword = sharePassword;
|
|
return this;
|
|
}
|
|
|
|
public Builder shareUrl(String shareUrl) {
|
|
this.shareUrl = shareUrl;
|
|
return this;
|
|
}
|
|
|
|
public Builder standardUrl(String standardUrl) {
|
|
this.standardUrl = standardUrl;
|
|
return this;
|
|
}
|
|
|
|
public Builder otherParam(Map<String, Object> otherParam) {
|
|
this.otherParam = otherParam;
|
|
return this;
|
|
}
|
|
|
|
public ShareLinkInfo build() {
|
|
return new ShareLinkInfo(this);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return "ShareLinkInfo{" +
|
|
"shareKey='" + shareKey + '\'' +
|
|
", panName='" + panName + '\'' +
|
|
", type='" + type + '\'' +
|
|
", sharePassword='" + sharePassword + '\'' +
|
|
", shareUrl='" + shareUrl + '\'' +
|
|
", standardUrl='" + standardUrl + '\'' +
|
|
", otherParam='" + otherParam + '\'' +
|
|
'}';
|
|
}
|
|
}
|