From 1a69d8048995cd67ec7307c80bcab91a992fc3af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=AE=E5=87=89?= Date: Fri, 28 Jan 2022 11:04:56 +0800 Subject: [PATCH] :art: Pull away Path --- drivers/operate/operate.go | 26 ++++++++++++++++++++++++++ server/controllers/file/folder.go | 3 ++- server/controllers/path.go | 3 ++- server/controllers/proxy.go | 3 ++- server/webdav/file.go | 4 ++-- 5 files changed, 34 insertions(+), 5 deletions(-) diff --git a/drivers/operate/operate.go b/drivers/operate/operate.go index 36f2af1c..2dd042cc 100644 --- a/drivers/operate/operate.go +++ b/drivers/operate/operate.go @@ -8,6 +8,32 @@ import ( "runtime/debug" ) +func Path(driver base.Driver, account *model.Account, path string) (*model.File, []model.File, error) { + return driver.Path(path, account) +} + +func Files(driver base.Driver, account *model.Account, path string) ([]model.File, error) { + _, files, err := Path(driver, account, path) + if err != nil { + return nil, err + } + if files == nil { + return nil, base.ErrNotFolder + } + return files, nil +} + +func File(driver base.Driver, account *model.Account, path string) (*model.File, error) { + file, _, err := Path(driver, account, path) + if err != nil { + return nil, err + } + if file == nil { + return nil, base.ErrNotFolder + } + return file, nil +} + func MakeDir(driver base.Driver, account *model.Account, path string, clearCache bool) error { log.Debugf("mkdir: %s", path) err := driver.MakeDir(path, account) diff --git a/server/controllers/file/folder.go b/server/controllers/file/folder.go index 601d8f5a..293beebb 100644 --- a/server/controllers/file/folder.go +++ b/server/controllers/file/folder.go @@ -1,6 +1,7 @@ package file import ( + "github.com/Xhofe/alist/drivers/operate" "github.com/Xhofe/alist/model" "github.com/Xhofe/alist/server/common" "github.com/gin-gonic/gin" @@ -30,7 +31,7 @@ func Folder(c *gin.Context) { common.ErrorResp(c, err, 500) return } - file, rawFiles, err := driver.Path(path, account) + file, rawFiles, err := operate.Path(driver, account, path) if err != nil { common.ErrorResp(c, err, 500) return diff --git a/server/controllers/path.go b/server/controllers/path.go index e4982dc2..e3db698f 100644 --- a/server/controllers/path.go +++ b/server/controllers/path.go @@ -5,6 +5,7 @@ import ( "fmt" "github.com/Xhofe/alist/conf" "github.com/Xhofe/alist/drivers/base" + "github.com/Xhofe/alist/drivers/operate" "github.com/Xhofe/alist/model" "github.com/Xhofe/alist/server/common" "github.com/Xhofe/alist/utils" @@ -109,7 +110,7 @@ func Path(c *gin.Context) { common.ErrorResp(c, err, 500) return } - file, files, err := driver.Path(path, account) + file, files, err := operate.Path(driver, account, path) if err != nil { common.ErrorResp(c, err, 500) return diff --git a/server/controllers/proxy.go b/server/controllers/proxy.go index e37f526e..67e85356 100644 --- a/server/controllers/proxy.go +++ b/server/controllers/proxy.go @@ -4,6 +4,7 @@ import ( "fmt" "github.com/Xhofe/alist/conf" "github.com/Xhofe/alist/drivers/base" + "github.com/Xhofe/alist/drivers/operate" "github.com/Xhofe/alist/server/common" "github.com/Xhofe/alist/utils" "github.com/gin-gonic/gin" @@ -50,7 +51,7 @@ func Proxy(c *gin.Context) { return } // 检查文件 - file, err := driver.File(path, account) + file, err := operate.File(driver, account, path) if err != nil { common.ErrorResp(c, err, 500) return diff --git a/server/webdav/file.go b/server/webdav/file.go index a9f273d5..cecc25c1 100644 --- a/server/webdav/file.go +++ b/server/webdav/file.go @@ -40,7 +40,7 @@ func (fs *FileSystem) File(rawPath string) (*model.File, error) { if err != nil { return nil, err } - return driver.File(path_, account) + return operate.File(driver, account, path_) } func (fs *FileSystem) Files(ctx context.Context, rawPath string) ([]model.File, error) { @@ -56,7 +56,7 @@ func (fs *FileSystem) Files(ctx context.Context, rawPath string) ([]model.File, if err != nil { return nil, err } - files, err := driver.Files(path_, account) + files, err := operate.Files(driver, account, path_) if err != nil { return nil, err }