diff --git a/bootstrap/model.go b/bootstrap/model.go index 48cd5f72..a5bca0b2 100644 --- a/bootstrap/model.go +++ b/bootstrap/model.go @@ -142,7 +142,7 @@ func initSettings() { }, { Key: "icon color", - Value: "blue.400", + Value: "teal.300", Type: "string", Description: "icon's color", Group: model.PUBLIC, diff --git a/drivers/alidrive.go b/drivers/alidrive.go index 39c9f697..559a0da7 100644 --- a/drivers/alidrive.go +++ b/drivers/alidrive.go @@ -65,6 +65,7 @@ type AliFile struct { FileId string `json:"file_id"` Type string `json:"type"` Name string `json:"name"` + Category string `json:"category"` ParentFileId string `json:"parent_file_id"` UpdatedAt *time.Time `json:"updated_at"` Size int64 `json:"size"` @@ -78,12 +79,19 @@ func AliToFile(file AliFile) *model.File { Size: file.Size, UpdatedAt: file.UpdatedAt, Thumbnail: file.Thumbnail, + Driver: "AliDrive", } if file.Type == "folder" { f.Type = conf.FOLDER } else { f.Type = utils.GetFileType(file.FileExtension) } + if file.Category == "video" { + f.Type = conf.VIDEO + } + if file.Category == "image" { + f.Type = conf.IMAGE + } return f } diff --git a/drivers/native.go b/drivers/native.go index 89c0c523..cb7ecf7d 100644 --- a/drivers/native.go +++ b/drivers/native.go @@ -62,6 +62,7 @@ func (n Native) Path(path string, account *model.Account) (*model.File, []*model Size: f.Size(), Type: 0, UpdatedAt: &time, + Driver: "Native", } if f.IsDir() { file.Type = conf.FOLDER @@ -82,6 +83,7 @@ func (n Native) Path(path string, account *model.Account) (*model.File, []*model Size: f.Size(), Type: utils.GetFileType(filepath.Ext(f.Name())), UpdatedAt: &time, + Driver: "Native", } return file, nil, nil } diff --git a/model/file.go b/model/file.go index 5d6be23d..6123ccf4 100644 --- a/model/file.go +++ b/model/file.go @@ -6,6 +6,7 @@ type File struct { Name string `json:"name"` Size int64 `json:"size"` Type int `json:"type"` + Driver string `json:"driver"` UpdatedAt *time.Time `json:"updated_at"` Thumbnail string `json:"thumbnail"` } diff --git a/server/path.go b/server/path.go index 1e0d6ff8..ac60afa1 100644 --- a/server/path.go +++ b/server/path.go @@ -56,3 +56,30 @@ func Path(ctx *fiber.Ctx) error { }) } } + +func Link(ctx *fiber.Ctx) error { + var req PathReq + if err := ctx.BodyParser(&req); err != nil { + return ErrorResp(ctx, err, 400) + } + rawPath := req.Path + rawPath = utils.ParsePath(rawPath) + log.Debugf("down: %s",rawPath) + account, path, driver, err := ParsePath(rawPath) + if err != nil { + return ErrorResp(ctx, err, 500) + } + link, err := driver.Link(path, account) + if err != nil { + return ErrorResp(ctx, err, 500) + } + if account.Type == "Native" { + return SuccessResp(ctx, fiber.Map{ + "url":"", + }) + } else { + return SuccessResp(ctx,fiber.Map{ + "url":link, + }) + } +} \ No newline at end of file diff --git a/server/router.go b/server/router.go index 7eb12776..2a8dff33 100644 --- a/server/router.go +++ b/server/router.go @@ -19,6 +19,7 @@ func InitApiRouter(app *fiber.App) { { public.Post("/path", CheckAccount, Path) public.Get("/settings", GetSettingsPublic) + public.Post("/link", CheckAccount, Link) } admin := api.Group("/admin")