From 3331462229b35432923cb0dd20d5c9b131b2edaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=AE=E5=87=89?= <927625802@qq.com> Date: Thu, 30 Dec 2021 16:15:57 +0800 Subject: [PATCH] :sparkles: local sort for no sort param driver --- drivers/alidrive/driver.go | 24 ++++++++++++------------ drivers/base/driver.go | 19 +++++++++++++++++++ drivers/ftp/driver.go | 16 +--------------- drivers/google/driver.go | 1 + drivers/native/driver.go | 17 ++--------------- drivers/pikpak/driver.go | 5 +++-- drivers/shandian/driver.go | 1 + server/controllers/path.go | 3 +++ 8 files changed, 42 insertions(+), 44 deletions(-) diff --git a/drivers/alidrive/driver.go b/drivers/alidrive/driver.go index 8a417a0c..fa43e11f 100644 --- a/drivers/alidrive/driver.go +++ b/drivers/alidrive/driver.go @@ -27,6 +27,18 @@ func (driver AliDrive) Config() base.DriverConfig { func (driver AliDrive) Items() []base.Item { return []base.Item{ + { + Name: "refresh_token", + Label: "refresh token", + Type: base.TypeString, + Required: true, + }, + { + Name: "root_folder", + Label: "root folder file_id", + Type: base.TypeString, + Required: false, + }, { Name: "order_by", Label: "order_by", @@ -41,18 +53,6 @@ func (driver AliDrive) Items() []base.Item { Values: "ASC,DESC", Required: false, }, - { - Name: "refresh_token", - Label: "refresh token", - Type: base.TypeString, - Required: true, - }, - { - Name: "root_folder", - Label: "root folder file_id", - Type: base.TypeString, - Required: false, - }, { Name: "limit", Label: "limit", diff --git a/drivers/base/driver.go b/drivers/base/driver.go index a2988fd7..f7206688 100644 --- a/drivers/base/driver.go +++ b/drivers/base/driver.go @@ -16,6 +16,7 @@ type DriverConfig struct { ApiProxy bool // 使用API中转的 NoNeedSetLink bool // 不需要设置链接的 NoCors bool // 不可以跨域 + LocalSort bool // 本地排序 } type Args struct { @@ -133,6 +134,24 @@ func GetDrivers() map[string][]Item { }, }, res[k]...) } + if v.Config().LocalSort { + res[k] = append(res[k], []Item{ + { + Name: "order_by", + Label: "order_by", + Type: TypeSelect, + Values: "name,size,updated_at", + Required: false, + }, + { + Name: "order_direction", + Label: "order_direction", + Type: TypeSelect, + Values: "ASC,DESC", + Required: false, + }, + }...) + } } return res } diff --git a/drivers/ftp/driver.go b/drivers/ftp/driver.go index 24c1fb9e..f99efc20 100644 --- a/drivers/ftp/driver.go +++ b/drivers/ftp/driver.go @@ -20,6 +20,7 @@ func (driver FTP) Config() base.DriverConfig { OnlyProxy: true, NoLink: true, NoNeedSetLink: true, + LocalSort: true, } } @@ -49,20 +50,6 @@ func (driver FTP) Items() []base.Item { Type: base.TypeString, Required: false, }, - { - Name: "order_by", - Label: "order_by", - Type: base.TypeSelect, - Values: "name,size,updated_at", - Required: false, - }, - { - Name: "order_direction", - Label: "order_direction", - Type: base.TypeSelect, - Values: "ASC,DESC", - Required: false, - }, } } @@ -187,7 +174,6 @@ func (driver FTP) Path(path string, account *model.Account) (*model.File, []mode if err != nil { return nil, nil, err } - model.SortFiles(files, account) return nil, files, nil } diff --git a/drivers/google/driver.go b/drivers/google/driver.go index f324aa5d..a0d3e549 100644 --- a/drivers/google/driver.go +++ b/drivers/google/driver.go @@ -20,6 +20,7 @@ func (driver GoogleDrive) Config() base.DriverConfig { OnlyProxy: true, ApiProxy: true, NoNeedSetLink: true, + LocalSort: true, } } diff --git a/drivers/native/driver.go b/drivers/native/driver.go index 3cc84120..4e3df9d1 100644 --- a/drivers/native/driver.go +++ b/drivers/native/driver.go @@ -23,6 +23,7 @@ func (driver Native) Config() base.DriverConfig { OnlyProxy: true, NoLink: true, NoNeedSetLink: true, + LocalSort: true, } } @@ -34,20 +35,6 @@ func (driver Native) Items() []base.Item { Type: base.TypeString, Required: true, }, - { - Name: "order_by", - Label: "order_by", - Type: base.TypeSelect, - Values: "name,size,updated_at", - Required: false, - }, - { - Name: "order_direction", - Label: "order_direction", - Type: base.TypeSelect, - Values: "ASC,DESC", - Required: false, - }, } } @@ -153,7 +140,7 @@ func (driver Native) Path(path string, account *model.Account) (*model.File, []m if err != nil { return nil, nil, err } - model.SortFiles(files, account) + //model.SortFiles(files, account) return nil, files, nil } diff --git a/drivers/pikpak/driver.go b/drivers/pikpak/driver.go index 13327e46..4ee8f486 100644 --- a/drivers/pikpak/driver.go +++ b/drivers/pikpak/driver.go @@ -15,8 +15,9 @@ type PikPak struct{} func (driver PikPak) Config() base.DriverConfig { return base.DriverConfig{ - Name: "PikPak", - ApiProxy: true, + Name: "PikPak", + ApiProxy: true, + LocalSort: true, } } diff --git a/drivers/shandian/driver.go b/drivers/shandian/driver.go index e95f6f9d..11cd41bc 100644 --- a/drivers/shandian/driver.go +++ b/drivers/shandian/driver.go @@ -18,6 +18,7 @@ func (driver Shandian) Config() base.DriverConfig { return base.DriverConfig{ Name: "ShandianPan", NoNeedSetLink: true, + LocalSort: true, } } diff --git a/server/controllers/path.go b/server/controllers/path.go index b5e542ef..85a02867 100644 --- a/server/controllers/path.go +++ b/server/controllers/path.go @@ -77,6 +77,9 @@ func Path(c *gin.Context) { }) } else { files = Hide(files, req.Path) + if driver.Config().LocalSort { + model.SortFiles(files, account) + } c.JSON(200, common.Resp{ Code: 200, Message: "folder",