🎇 google drive thumbnail

pull/548/head
微凉 2021-12-30 19:01:19 +08:00
parent 5f2621eca9
commit db06b627cc
2 changed files with 35 additions and 11 deletions

View File

@ -20,7 +20,6 @@ func (driver GoogleDrive) Config() base.DriverConfig {
OnlyProxy: true,
ApiProxy: true,
NoNeedSetLink: true,
LocalSort: true,
}
}
@ -50,6 +49,20 @@ func (driver GoogleDrive) Items() []base.Item {
Type: base.TypeString,
Required: false,
},
{
Name: "order_by",
Label: "order_by",
Type: base.TypeString,
Required: false,
Description: "such as: folder,name,modifiedTime",
},
{
Name: "order_direction",
Label: "order_direction",
Type: base.TypeSelect,
Values: "asc,desc",
Required: false,
},
}
}
@ -115,7 +128,7 @@ func (driver GoogleDrive) Files(path string, account *model.Account) ([]model.Fi
}
files := make([]model.File, 0)
for _, file := range rawFiles {
files = append(files, *driver.FormatFile(&file))
files = append(files, *driver.FormatFile(&file, account))
}
return files, nil
}

View File

@ -45,24 +45,24 @@ func (driver GoogleDrive) RefreshToken(account *model.Account) error {
}
type File struct {
Id string `json:"id"`
Name string `json:"name"`
MimeType string `json:"mimeType"`
ModifiedTime *time.Time `json:"modifiedTime"`
Size string `json:"size"`
Id string `json:"id"`
Name string `json:"name"`
MimeType string `json:"mimeType"`
ModifiedTime *time.Time `json:"modifiedTime"`
Size string `json:"size"`
ThumbnailLink string `json:"thumbnailLink"`
}
func (driver GoogleDrive) IsDir(mimeType string) bool {
return mimeType == "application/vnd.google-apps.folder" || mimeType == "application/vnd.google-apps.shortcut"
}
func (driver GoogleDrive) FormatFile(file *File) *model.File {
func (driver GoogleDrive) FormatFile(file *File, account *model.Account) *model.File {
f := &model.File{
Id: file.Id,
Name: file.Name,
Driver: driver.Config().Name,
UpdatedAt: file.ModifiedTime,
Thumbnail: "",
Url: "",
}
if driver.IsDir(file.MimeType) {
@ -72,6 +72,13 @@ func (driver GoogleDrive) FormatFile(file *File) *model.File {
f.Size = size
f.Type = utils.GetFileType(filepath.Ext(file.Name))
}
if file.ThumbnailLink != "" {
if account.DownProxyUrl != "" {
f.Thumbnail = fmt.Sprintf("%s/%s", account.DownProxyUrl, file.ThumbnailLink)
} else {
f.Thumbnail = file.ThumbnailLink
}
}
return f
}
@ -102,9 +109,13 @@ func (driver GoogleDrive) GetFiles(id string, account *model.Account) ([]File, e
pageToken = ""
}
var resp Files
orderBy := "folder,name,modifiedTime desc"
if account.OrderBy != "" {
orderBy = account.OrderBy + " " + account.OrderDirection
}
query := map[string]string{
"orderBy": "folder,name,modifiedTime desc",
"fields": "files(id,name,mimeType,size,modifiedTime),nextPageToken",
"orderBy": orderBy,
"fields": "files(id,name,mimeType,size,modifiedTime,thumbnailLink),nextPageToken",
"pageSize": "1000",
"q": fmt.Sprintf("'%s' in parents and trashed = false", id),
//"includeItemsFromAllDrives": "true",