From ac0635d1d13623f396c22ec4f119f51dcbdab786 Mon Sep 17 00:00:00 2001 From: MadDogOwner Date: Tue, 23 Jun 2026 22:34:25 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=90=88=E5=B9=B6=E4=B8=AA?= =?UTF-8?q?=E4=BA=BA=E5=92=8C=E5=AE=B6=E5=BA=AD=E7=A3=81=E7=9B=98=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E8=AF=B7=E6=B1=82=E4=B8=BA=E7=BB=9F=E4=B8=80=E7=9A=84?= =?UTF-8?q?=E9=85=8D=E9=A2=9D=E8=AF=A6=E6=83=85=E8=AF=B7=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: MadDogOwner --- drivers/139/driver.go | 38 +++++++------------------------------- drivers/139/types.go | 20 ++++++++------------ drivers/139/util.go | 31 ++++--------------------------- 3 files changed, 19 insertions(+), 70 deletions(-) diff --git a/drivers/139/driver.go b/drivers/139/driver.go index 4e3ea3e920..6386a2f256 100644 --- a/drivers/139/driver.go +++ b/drivers/139/driver.go @@ -944,38 +944,14 @@ func (d *Yun139) GetDetails(ctx context.Context) (*model.StorageDetails, error) if d.UserDomainID == "" { return nil, errs.NotImplement } - var total, used int64 - if d.isFamily() { - diskInfo, err := d.getFamilyDiskInfo(ctx) - if err != nil { - return nil, err - } - totalMb, err := strconv.ParseInt(diskInfo.Data.DiskSize, 10, 64) - if err != nil { - return nil, fmt.Errorf("failed convert disk size into integer: %+v", err) - } - usedMb, err := strconv.ParseInt(diskInfo.Data.UsedSize, 10, 64) - if err != nil { - return nil, fmt.Errorf("failed convert used size into integer: %+v", err) - } - total = totalMb * 1024 * 1024 - used = usedMb * 1024 * 1024 - } else { - diskInfo, err := d.getPersonalDiskInfo(ctx) - if err != nil { - return nil, err - } - totalMb, err := strconv.ParseInt(diskInfo.Data.DiskSize, 10, 64) - if err != nil { - return nil, fmt.Errorf("failed convert disk size into integer: %+v", err) - } - freeMb, err := strconv.ParseInt(diskInfo.Data.FreeDiskSize, 10, 64) - if err != nil { - return nil, fmt.Errorf("failed convert free size into integer: %+v", err) - } - total = totalMb * 1024 * 1024 - used = total - (freeMb * 1024 * 1024) + detail, err := d.getDiskQuotaDetail(ctx) + if err != nil { + return nil, err } + + total := detail.Data.DiskSize * utils.MB + used := (detail.Data.DiskSize - detail.Data.FreeDiskSize) * utils.MB + return &model.StorageDetails{ DiskUsage: model.DiskUsage{ TotalSpace: total, diff --git a/drivers/139/types.go b/drivers/139/types.go index 499cdbc4d3..8c23cdcbb2 100644 --- a/drivers/139/types.go +++ b/drivers/139/types.go @@ -313,20 +313,16 @@ type RefreshTokenResp struct { Desc string `xml:"desc"` } -type PersonalDiskInfoResp struct { +type DiskQuotaDetail struct { BaseResp Data struct { - FreeDiskSize string `json:"freeDiskSize"` - DiskSize string `json:"diskSize"` - IsInfinitePicStorage *bool `json:"isInfinitePicStorage"` - } `json:"data"` -} - -type FamilyDiskInfoResp struct { - BaseResp - Data struct { - UsedSize string `json:"usedSize"` - DiskSize string `json:"diskSize"` + FreeDiskSize int64 `json:"freeDiskSize"` + DiskSize int64 `json:"diskSize"` + // QuotaList []struct { + // DriveType int `json:"driveType"` + // DriveName string `json:"driveName"` + // UsedSize int64 `json:"usedSize"` + // } `json:"quotaList"` } `json:"data"` } diff --git a/drivers/139/util.go b/drivers/139/util.go index c026de52a2..3ff123ba38 100644 --- a/drivers/139/util.go +++ b/drivers/139/util.go @@ -5,7 +5,6 @@ import ( "context" "crypto/aes" "crypto/cipher" - "crypto/md5" crypto_rand "crypto/rand" "crypto/sha1" "encoding/base64" @@ -205,9 +204,7 @@ func (d *Yun139) requestRoute(data interface{}, resp interface{}) ([]byte, error callback := func(req *resty.Request) { req.SetBody(data) } - if callback != nil { - callback(req) - } + callback(req) body, err := utils.Json.Marshal(req.Body) if err != nil { return nil, err @@ -728,12 +725,12 @@ func (d *Yun139) uploadPersonalParts(ctx context.Context, partInfos []PartInfo, return nil } -func (d *Yun139) getPersonalDiskInfo(ctx context.Context) (*PersonalDiskInfoResp, error) { +func (d *Yun139) getDiskQuotaDetail(ctx context.Context) (*DiskQuotaDetail, error) { data := map[string]interface{}{ "userDomainId": d.UserDomainID, } - var resp PersonalDiskInfoResp - _, err := d.request("https://user-njs.yun.139.com/user/disk/getPersonalDiskInfo", http.MethodPost, func(req *resty.Request) { + var resp DiskQuotaDetail + _, err := d.request("https://user-njs.yun.139.com/user/disk/quota/detail", http.MethodPost, func(req *resty.Request) { req.SetBody(data) req.SetContext(ctx) }, &resp) @@ -743,26 +740,6 @@ func (d *Yun139) getPersonalDiskInfo(ctx context.Context) (*PersonalDiskInfoResp return &resp, nil } -func (d *Yun139) getFamilyDiskInfo(ctx context.Context) (*FamilyDiskInfoResp, error) { - data := map[string]interface{}{ - "userDomainId": d.UserDomainID, - } - var resp FamilyDiskInfoResp - _, err := d.request("https://user-njs.yun.139.com/user/disk/getFamilyDiskInfo", http.MethodPost, func(req *resty.Request) { - req.SetBody(data) - req.SetContext(ctx) - }, &resp) - if err != nil { - return nil, err - } - return &resp, nil -} - -func getMd5(dataStr string) string { - hash := md5.Sum([]byte(dataStr)) - return fmt.Sprintf("%x", hash) -} - func (d *Yun139) step1_password_login() (string, error) { log.Debugf("--- 执行步骤 1: 登录 API ---") loginURL := "https://mail.10086.cn/Login/Login.ashx"