update: 优化网盘操作,移除特殊操作

This commit is contained in:
Kerwin
2025-09-04 11:09:11 +08:00
parent f2ee574fae
commit 1c71156784
8 changed files with 70 additions and 63 deletions

View File

@@ -345,13 +345,15 @@ func RefreshCapacity(c *gin.Context) {
}
var userInfo *panutils.UserInfo
switch s := service.(type) {
case *panutils.XunleiPanService:
s.SetCKSRepository(repoManager.CksRepository, *cks) // 迅雷需要初始化 token 后才能获取,
userInfo, err = s.GetUserInfo(nil)
default:
userInfo, err = service.GetUserInfo(&cks.Ck)
}
service.SetCKSRepository(repoManager.CksRepository, *cks) // 迅雷需要初始化 token 后才能获取,
userInfo, err = service.GetUserInfo(&cks.Ck)
// switch s := service.(type) {
// case *panutils.XunleiPanService:
// userInfo, err = s.GetUserInfo(nil)
// default:
// userInfo, err = service.GetUserInfo(&cks.Ck)
// }
if err != nil {
ErrorResponse(c, "无法获取用户信息,刷新失败: "+err.Error(), http.StatusBadRequest)
return

View File

@@ -386,8 +386,8 @@ func GetResourceLink(c *gin.Context) {
}
// 如果不是夸克网盘,直接返回原链接
if panInfo.Name != "quark" {
utils.Info("非夸克资源,直接返回原链接")
if panInfo.Name != "quark" && panInfo.Name != "xunlei" {
utils.Info("非夸克和迅雷资源,直接返回原链接")
SuccessResponse(c, gin.H{
"url": resource.URL,
"type": "original",
@@ -397,9 +397,6 @@ func GetResourceLink(c *gin.Context) {
return
}
// 夸克资源处理逻辑
utils.Info("夸克资源处理开始")
// 如果已存在转存链接,直接返回
if resource.SaveURL != "" {
utils.Info("已存在转存链接,直接返回: %s", resource.SaveURL)
@@ -475,18 +472,11 @@ type TransferResult struct {
func performAutoTransfer(resource *entity.Resource) TransferResult {
utils.Info("开始执行资源转存 - ID: %d, URL: %s", resource.ID, resource.URL)
// 获取夸克平台ID
quarkPanID, err := getQuarkPanID()
if err != nil {
utils.Error("获取夸克平台ID失败: %v", err)
return TransferResult{
Success: false,
ErrorMsg: fmt.Sprintf("获取夸克平台ID失败: %v", err),
}
}
// 平台ID
panID := resource.PanID
// 获取可用的夸克账号
accounts, err := repoManager.CksRepository.FindAll()
accounts, err := repoManager.CksRepository.FindByPanID(*panID)
if err != nil {
utils.Error("获取网盘账号失败: %v", err)
return TransferResult{
@@ -495,34 +485,36 @@ func performAutoTransfer(resource *entity.Resource) TransferResult {
}
}
// 测试阶段,移除最小限制
// 获取最小存储空间配置
autoTransferMinSpace, err := repoManager.SystemConfigRepository.GetConfigInt(entity.ConfigKeyAutoTransferMinSpace)
if err != nil {
utils.Error("获取最小存储空间配置失败: %v", err)
autoTransferMinSpace = 5 // 默认5GB
}
// autoTransferMinSpace, err := repoManager.SystemConfigRepository.GetConfigInt(entity.ConfigKeyAutoTransferMinSpace)
// if err != nil {
// utils.Error("获取最小存储空间配置失败: %v", err)
// autoTransferMinSpace = 5 // 默认5GB
// }
// 过滤:只保留已激活、夸克平台、剩余空间足够的账号
minSpaceBytes := int64(autoTransferMinSpace) * 1024 * 1024 * 1024
var validAccounts []entity.Cks
for _, acc := range accounts {
if acc.IsValid && acc.PanID == quarkPanID && acc.LeftSpace >= minSpaceBytes {
validAccounts = append(validAccounts, acc)
}
}
// // 过滤:只保留已激活、夸克平台、剩余空间足够的账号
// minSpaceBytes := int64(autoTransferMinSpace) * 1024 * 1024 * 1024
// var validAccounts []entity.Cks
// for _, acc := range accounts {
// if acc.IsValid && acc.PanID == *panID && acc.LeftSpace >= minSpaceBytes {
// validAccounts = append(validAccounts, acc)
// }
// }
if len(validAccounts) == 0 {
utils.Info("没有可用的夸克网盘账号")
return TransferResult{
Success: false,
ErrorMsg: "没有可用的夸克网盘账号",
}
}
// if len(validAccounts) == 0 {
// utils.Info("没有可用的网盘账号")
// return TransferResult{
// Success: false,
// ErrorMsg: "没有可用的网盘账号",
// }
// }
utils.Info("找到 %d 个可用夸克网盘账号,开始转存处理...", len(validAccounts))
// utils.Info("找到 %d 个可用网盘账号,开始转存处理...", len(validAccounts))
// 使用第一个可用账号进行转存
account := validAccounts[0]
// account := validAccounts[0]
account := accounts[0]
// 创建网盘服务工厂
factory := pan.NewPanFactory()
@@ -566,6 +558,9 @@ func transferSingleResource(resource *entity.Resource, account entity.Cks, facto
}
}
// 设置账号信息
service.SetCKSRepository(repoManager.CksRepository, account)
// 提取分享ID
shareID, _ := commonutils.ExtractShareIdString(resource.URL)
if shareID == "" {
@@ -576,7 +571,7 @@ func transferSingleResource(resource *entity.Resource, account entity.Cks, facto
}
// 执行转存
transferResult, err := service.Transfer(shareID)
transferResult, err := service.Transfer(shareID) // 有些链接还需要其他信息从 url 中自行解析
if err != nil {
utils.Error("转存失败: %v", err)
return TransferResult{