mirror of https://github.com/Xhofe/alist
feat(google_drive): support shortcut (close #2268)
parent
cdcbfb24c4
commit
c3ab378ac5
|
@ -5,6 +5,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/alist-org/alist/v3/internal/model"
|
"github.com/alist-org/alist/v3/internal/model"
|
||||||
|
log "github.com/sirupsen/logrus"
|
||||||
)
|
)
|
||||||
|
|
||||||
type TokenError struct {
|
type TokenError struct {
|
||||||
|
@ -18,17 +19,22 @@ type Files struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
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"`
|
ThumbnailLink string `json:"thumbnailLink"`
|
||||||
|
ShortcutDetails struct {
|
||||||
|
TargetId string `json:"targetId"`
|
||||||
|
TargetMimeType string `json:"targetMimeType"`
|
||||||
|
} `json:"shortcutDetails"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func fileToObj(f File) *model.ObjThumb {
|
func fileToObj(f File) *model.ObjThumb {
|
||||||
|
log.Debugf("google file: %+v", f)
|
||||||
size, _ := strconv.ParseInt(f.Size, 10, 64)
|
size, _ := strconv.ParseInt(f.Size, 10, 64)
|
||||||
return &model.ObjThumb{
|
obj := &model.ObjThumb{
|
||||||
Object: model.Object{
|
Object: model.Object{
|
||||||
ID: f.Id,
|
ID: f.Id,
|
||||||
Name: f.Name,
|
Name: f.Name,
|
||||||
|
@ -38,6 +44,11 @@ func fileToObj(f File) *model.ObjThumb {
|
||||||
},
|
},
|
||||||
Thumbnail: model.Thumbnail{},
|
Thumbnail: model.Thumbnail{},
|
||||||
}
|
}
|
||||||
|
if f.MimeType == "application/vnd.google-apps.shortcut" {
|
||||||
|
obj.ID = f.ShortcutDetails.TargetId
|
||||||
|
obj.IsFolder = f.ShortcutDetails.TargetMimeType == "application/vnd.google-apps.folder"
|
||||||
|
}
|
||||||
|
return obj
|
||||||
}
|
}
|
||||||
|
|
||||||
type Error struct {
|
type Error struct {
|
||||||
|
|
|
@ -81,7 +81,7 @@ func (d *GoogleDrive) getFiles(id string) ([]File, error) {
|
||||||
}
|
}
|
||||||
query := map[string]string{
|
query := map[string]string{
|
||||||
"orderBy": orderBy,
|
"orderBy": orderBy,
|
||||||
"fields": "files(id,name,mimeType,size,modifiedTime,thumbnailLink),nextPageToken",
|
"fields": "files(id,name,mimeType,size,modifiedTime,thumbnailLink,shortcutDetails),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