package febbox import ( "fmt" "github.com/alist-org/alist/v3/internal/model" "github.com/alist-org/alist/v3/pkg/utils" hash_extend "github.com/alist-org/alist/v3/pkg/utils/hash" "strconv" "time" ) type ErrResp struct { ErrorCode int64 `json:"code"` ErrorMsg string `json:"msg"` ServerRunTime float64 `json:"server_runtime"` ServerName string `json:"server_name"` } func (e *ErrResp) IsError() bool { return e.ErrorCode != 0 || e.ErrorMsg != "" || e.ServerRunTime != 0 || e.ServerName != "" } func (e *ErrResp) Error() string { return fmt.Sprintf("ErrorCode: %d ,Error: %s ,ServerRunTime: %f ,ServerName: %s", e.ErrorCode, e.ErrorMsg, e.ServerRunTime, e.ServerName) } type FileListResp struct { Code int `json:"code"` Msg string `json:"msg"` Data struct { FileList []File `json:"file_list"` ShowType string `json:"show_type"` } `json:"data"` } type Rules struct { AllowCopy int64 `json:"allow_copy"` AllowDelete int64 `json:"allow_delete"` AllowDownload int64 `json:"allow_download"` AllowComment int64 `json:"allow_comment"` HideLocation int64 `json:"hide_location"` } type File struct { Fid int64 `json:"fid"` UID int64 `json:"uid"` FileSize int64 `json:"file_size"` Path string `json:"path"` FileName string `json:"file_name"` Ext string `json:"ext"` AddTime int64 `json:"add_time"` FileCreateTime int64 `json:"file_create_time"` FileUpdateTime int64 `json:"file_update_time"` ParentID int64 `json:"parent_id"` UpdateTime int64 `json:"update_time"` LastOpenTime int64 `json:"last_open_time"` IsDir int64 `json:"is_dir"` Epub int64 `json:"epub"` IsMusicList int64 `json:"is_music_list"` OssFid int64 `json:"oss_fid"` Faststart int64 `json:"faststart"` HasVideoQuality int64 `json:"has_video_quality"` TotalDownload int64 `json:"total_download"` Status int64 `json:"status"` Remark string `json:"remark"` OldHash string `json:"old_hash"` Hash string `json:"hash"` HashType string `json:"hash_type"` FromUID int64 `json:"from_uid"` FidOrg int64 `json:"fid_org"` ShareID int64 `json:"share_id"` InvitePermission int64 `json:"invite_permission"` ThumbSmall string `json:"thumb_small"` ThumbSmallWidth int64 `json:"thumb_small_width"` ThumbSmallHeight int64 `json:"thumb_small_height"` Thumb string `json:"thumb"` ThumbWidth int64 `json:"thumb_width"` ThumbHeight int64 `json:"thumb_height"` ThumbBig string `json:"thumb_big"` ThumbBigWidth int64 `json:"thumb_big_width"` ThumbBigHeight int64 `json:"thumb_big_height"` IsCustomThumb int64 `json:"is_custom_thumb"` Photos int64 `json:"photos"` IsAlbum int64 `json:"is_album"` ReadOnly int64 `json:"read_only"` Rules Rules `json:"rules"` IsShared int64 `json:"is_shared"` } func fileToObj(f File) *model.ObjThumb { return &model.ObjThumb{ Object: model.Object{ ID: strconv.FormatInt(f.Fid, 10), Name: f.FileName, Size: f.FileSize, Ctime: time.Unix(f.FileCreateTime, 0), Modified: time.Unix(f.FileUpdateTime, 0), IsFolder: f.IsDir == 1, HashInfo: utils.NewHashInfo(hash_extend.GCID, f.Hash), }, Thumbnail: model.Thumbnail{ Thumbnail: f.Thumb, }, } } type FileDownloadResp struct { Code int `json:"code"` Msg string `json:"msg"` Data []struct { Error int `json:"error"` DownloadURL string `json:"download_url"` Hash string `json:"hash"` HashType string `json:"hash_type"` Fid int `json:"fid"` FileName string `json:"file_name"` ParentID int `json:"parent_id"` FileSize int `json:"file_size"` Ext string `json:"ext"` Thumb string `json:"thumb"` VipLink int `json:"vip_link"` } `json:"data"` }