From d6775cda697ce314dc39cc72c4803afdcdf10f6b Mon Sep 17 00:00:00 2001 From: Xhofe Date: Thu, 28 Apr 2022 21:17:11 +0800 Subject: [PATCH] fix(123): can't delete folder (close #1009) --- drivers/123/123.go | 22 +++++++++++----------- drivers/123/driver.go | 9 +++++---- drivers/123/types.go | 12 ++++++------ 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/drivers/123/123.go b/drivers/123/123.go index 5d8ae7dc..e93f144b 100644 --- a/drivers/123/123.go +++ b/drivers/123/123.go @@ -3,7 +3,6 @@ package _23 import ( "errors" "fmt" - "github.com/Xhofe/alist/conf" "github.com/Xhofe/alist/drivers/base" "github.com/Xhofe/alist/model" "github.com/Xhofe/alist/utils" @@ -40,7 +39,7 @@ func (driver Pan123) Login(account *model.Account) error { return err } -func (driver Pan123) FormatFile(file *Pan123File) *model.File { +func (driver Pan123) FormatFile(file *File) *model.File { f := &model.File{ Id: strconv.FormatInt(file.FileId, 10), Name: file.FileName, @@ -52,9 +51,9 @@ func (driver Pan123) FormatFile(file *Pan123File) *model.File { return f } -func (driver Pan123) GetFiles(parentId string, account *model.Account) ([]Pan123File, error) { +func (driver Pan123) GetFiles(parentId string, account *model.Account) ([]File, error) { next := "0" - res := make([]Pan123File, 0) + res := make([]File, 0) for next != "-1" { var resp Pan123Files query := map[string]string{ @@ -139,7 +138,7 @@ func (driver Pan123) Request(url string, method int, headers, query map[string]s // return body, nil //} -func (driver Pan123) GetFile(path string, account *model.Account) (*Pan123File, error) { +func (driver Pan123) GetFile(path string, account *model.Account) (*File, error) { dir, name := filepath.Split(path) dir = utils.ParsePath(dir) _, err := driver.Files(dir, account) @@ -147,14 +146,15 @@ func (driver Pan123) GetFile(path string, account *model.Account) (*Pan123File, return nil, err } parentFiles_, _ := base.GetCache(dir, account) - parentFiles, _ := parentFiles_.([]Pan123File) + parentFiles, _ := parentFiles_.([]File) for _, file := range parentFiles { if file.FileName == name { - if file.Type != conf.FOLDER { - return &file, err - } else { - return nil, base.ErrNotFile - } + //if file.Type != conf.FOLDER { + // return &file, err + //} else { + // return nil, base.ErrNotFile + //} + return &file, nil } } return nil, base.ErrPathNotFound diff --git a/drivers/123/driver.go b/drivers/123/driver.go index 27ffcefb..eeb6bebd 100644 --- a/drivers/123/driver.go +++ b/drivers/123/driver.go @@ -108,10 +108,10 @@ func (driver Pan123) File(path string, account *model.Account) (*model.File, err func (driver Pan123) Files(path string, account *model.Account) ([]model.File, error) { path = utils.ParsePath(path) - var rawFiles []Pan123File + var rawFiles []File cache, err := base.GetCache(path, account) if err == nil { - rawFiles, _ = cache.([]Pan123File) + rawFiles, _ = cache.([]File) } else { file, err := driver.File(path, account) if err != nil { @@ -278,12 +278,13 @@ func (driver Pan123) Delete(path string, account *model.Account) error { if err != nil { return err } + log.Debugln("delete 123 file: ", file) data := base.Json{ "driveId": 0, "operation": true, - "fileTrashInfoList": file, + "fileTrashInfoList": []File{*file}, } - _, err = driver.Request("https://www.123pan.com/api/file/trash", + _, err = driver.Request("https://www.123pan.com/b/api/file/trash", base.Post, nil, nil, &data, nil, false, account) return err } diff --git a/drivers/123/types.go b/drivers/123/types.go index 82d66223..012d350e 100644 --- a/drivers/123/types.go +++ b/drivers/123/types.go @@ -7,7 +7,7 @@ import ( "time" ) -type Pan123File struct { +type File struct { FileName string `json:"FileName"` Size int64 `json:"Size"` UpdateAt *time.Time `json:"UpdateAt"` @@ -17,15 +17,15 @@ type Pan123File struct { S3KeyFlag string `json:"S3KeyFlag"` } -func (f Pan123File) GetSize() uint64 { +func (f File) GetSize() uint64 { return uint64(f.Size) } -func (f Pan123File) GetName() string { +func (f File) GetName() string { return f.FileName } -func (f Pan123File) GetType() int { +func (f File) GetType() int { if f.Type == 1 { return conf.FOLDER } @@ -47,8 +47,8 @@ type Pan123TokenResp struct { type Pan123Files struct { BaseResp Data struct { - InfoList []Pan123File `json:"InfoList"` - Next string `json:"Next"` + InfoList []File `json:"InfoList"` + Next string `json:"Next"` } `json:"data"` }