mirror of https://github.com/Xhofe/alist
🎇 google drive thumbnail
parent
5f2621eca9
commit
db06b627cc
|
@ -20,7 +20,6 @@ func (driver GoogleDrive) Config() base.DriverConfig {
|
||||||
OnlyProxy: true,
|
OnlyProxy: true,
|
||||||
ApiProxy: true,
|
ApiProxy: true,
|
||||||
NoNeedSetLink: true,
|
NoNeedSetLink: true,
|
||||||
LocalSort: true,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,6 +49,20 @@ func (driver GoogleDrive) Items() []base.Item {
|
||||||
Type: base.TypeString,
|
Type: base.TypeString,
|
||||||
Required: false,
|
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)
|
files := make([]model.File, 0)
|
||||||
for _, file := range rawFiles {
|
for _, file := range rawFiles {
|
||||||
files = append(files, *driver.FormatFile(&file))
|
files = append(files, *driver.FormatFile(&file, account))
|
||||||
}
|
}
|
||||||
return files, nil
|
return files, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,24 +45,24 @@ func (driver GoogleDrive) RefreshToken(account *model.Account) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
type File struct {
|
type File struct {
|
||||||
Id string `json:"id"`
|
Id string `json:"id"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
MimeType string `json:"mimeType"`
|
MimeType string `json:"mimeType"`
|
||||||
ModifiedTime *time.Time `json:"modifiedTime"`
|
ModifiedTime *time.Time `json:"modifiedTime"`
|
||||||
Size string `json:"size"`
|
Size string `json:"size"`
|
||||||
|
ThumbnailLink string `json:"thumbnailLink"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (driver GoogleDrive) IsDir(mimeType string) bool {
|
func (driver GoogleDrive) IsDir(mimeType string) bool {
|
||||||
return mimeType == "application/vnd.google-apps.folder" || mimeType == "application/vnd.google-apps.shortcut"
|
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{
|
f := &model.File{
|
||||||
Id: file.Id,
|
Id: file.Id,
|
||||||
Name: file.Name,
|
Name: file.Name,
|
||||||
Driver: driver.Config().Name,
|
Driver: driver.Config().Name,
|
||||||
UpdatedAt: file.ModifiedTime,
|
UpdatedAt: file.ModifiedTime,
|
||||||
Thumbnail: "",
|
|
||||||
Url: "",
|
Url: "",
|
||||||
}
|
}
|
||||||
if driver.IsDir(file.MimeType) {
|
if driver.IsDir(file.MimeType) {
|
||||||
|
@ -72,6 +72,13 @@ func (driver GoogleDrive) FormatFile(file *File) *model.File {
|
||||||
f.Size = size
|
f.Size = size
|
||||||
f.Type = utils.GetFileType(filepath.Ext(file.Name))
|
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
|
return f
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,9 +109,13 @@ func (driver GoogleDrive) GetFiles(id string, account *model.Account) ([]File, e
|
||||||
pageToken = ""
|
pageToken = ""
|
||||||
}
|
}
|
||||||
var resp Files
|
var resp Files
|
||||||
|
orderBy := "folder,name,modifiedTime desc"
|
||||||
|
if account.OrderBy != "" {
|
||||||
|
orderBy = account.OrderBy + " " + account.OrderDirection
|
||||||
|
}
|
||||||
query := map[string]string{
|
query := map[string]string{
|
||||||
"orderBy": "folder,name,modifiedTime desc",
|
"orderBy": orderBy,
|
||||||
"fields": "files(id,name,mimeType,size,modifiedTime),nextPageToken",
|
"fields": "files(id,name,mimeType,size,modifiedTime,thumbnailLink),nextPageToken",
|
||||||
"pageSize": "1000",
|
"pageSize": "1000",
|
||||||
"q": fmt.Sprintf("'%s' in parents and trashed = false", id),
|
"q": fmt.Sprintf("'%s' in parents and trashed = false", id),
|
||||||
//"includeItemsFromAllDrives": "true",
|
//"includeItemsFromAllDrives": "true",
|
||||||
|
|
Loading…
Reference in New Issue