Files
am-downloader/models.go
T

58 lines
2.3 KiB
Go

package main
import "time"
type Task struct {
ID uint `gorm:"primaryKey" json:"id"`
UserID uint `gorm:"uniqueIndex:idx_tasks_user_source_rid_quality" json:"userId"`
AssetID uint `gorm:"index" json:"assetId,omitempty"`
CreditReservationID uint `gorm:"index" json:"creditReservationId,omitempty"`
Source string `gorm:"uniqueIndex:idx_tasks_user_source_rid_quality" json:"source"`
RID string `gorm:"uniqueIndex:idx_tasks_user_source_rid_quality" json:"rid"`
Title string `json:"title"`
Artist string `json:"artist"`
Album string `json:"album"`
Pic string `json:"pic"`
Quality string `gorm:"uniqueIndex:idx_tasks_user_source_rid_quality" json:"quality"`
ResolvedQuality string `json:"resolvedQuality,omitempty"`
ActualQuality string `json:"actualQuality,omitempty"`
Format string `json:"format"`
Status string `json:"status"`
Error string `json:"error,omitempty"`
LocalPath string `json:"localPath,omitempty"`
RemotePath string `json:"remotePath,omitempty"`
TotalBytes int64 `json:"totalBytes"`
DownloadedBytes int64 `json:"downloadedBytes"`
Progress float64 `json:"progress"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
}
type Setting struct {
ID uint `gorm:"primaryKey"`
Key string `gorm:"uniqueIndex"`
Value string
}
type SongRequest struct {
Source string `json:"source"`
RID string `json:"rid"`
Title string `json:"title"`
Artist string `json:"artist"`
Album string `json:"album"`
Pic string `json:"pic"`
Quality string `json:"quality"`
}
type Config struct {
AMAPI, DownloadDir, WebDAVURL, WebDAVUser, WebDAVPass, WebDAVPath, DefaultQuality, WebDAVVersionPolicy, LocalFilePolicy string
WorkerCount int
}
type playInfo struct {
URL string `json:"url"`
Level string `json:"level"`
Format string `json:"format"`
Headers map[string]string `json:"headers"`
}