mirror of https://github.com/Xhofe/alist
				
				
				
			feat(google_drive): support shortcut (close #2268)
							parent
							
								
									cdcbfb24c4
								
							
						
					
					
						commit
						c3ab378ac5
					
				| 
						 | 
				
			
			@ -5,6 +5,7 @@ import (
 | 
			
		|||
	"time"
 | 
			
		||||
 | 
			
		||||
	"github.com/alist-org/alist/v3/internal/model"
 | 
			
		||||
	log "github.com/sirupsen/logrus"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type TokenError struct {
 | 
			
		||||
| 
						 | 
				
			
			@ -18,17 +19,22 @@ type Files struct {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
type File struct {
 | 
			
		||||
	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"`
 | 
			
		||||
	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"`
 | 
			
		||||
	ShortcutDetails struct {
 | 
			
		||||
		TargetId       string `json:"targetId"`
 | 
			
		||||
		TargetMimeType string `json:"targetMimeType"`
 | 
			
		||||
	} `json:"shortcutDetails"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func fileToObj(f File) *model.ObjThumb {
 | 
			
		||||
	log.Debugf("google file: %+v", f)
 | 
			
		||||
	size, _ := strconv.ParseInt(f.Size, 10, 64)
 | 
			
		||||
	return &model.ObjThumb{
 | 
			
		||||
	obj := &model.ObjThumb{
 | 
			
		||||
		Object: model.Object{
 | 
			
		||||
			ID:       f.Id,
 | 
			
		||||
			Name:     f.Name,
 | 
			
		||||
| 
						 | 
				
			
			@ -38,6 +44,11 @@ func fileToObj(f File) *model.ObjThumb {
 | 
			
		|||
		},
 | 
			
		||||
		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 {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -81,7 +81,7 @@ func (d *GoogleDrive) getFiles(id string) ([]File, error) {
 | 
			
		|||
		}
 | 
			
		||||
		query := map[string]string{
 | 
			
		||||
			"orderBy":  orderBy,
 | 
			
		||||
			"fields":   "files(id,name,mimeType,size,modifiedTime,thumbnailLink),nextPageToken",
 | 
			
		||||
			"fields":   "files(id,name,mimeType,size,modifiedTime,thumbnailLink,shortcutDetails),nextPageToken",
 | 
			
		||||
			"pageSize": "1000",
 | 
			
		||||
			"q":        fmt.Sprintf("'%s' in parents and trashed = false", id),
 | 
			
		||||
			//"includeItemsFromAllDrives": "true",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue