You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

58 lines
1.5 KiB

package models
import (
. "ytd/constants"
)
var maxConvertAttempts int = 2
type ConvertStatus struct {
Status string `json:"status"`
Err string `json:"error"`
Attempts int `json:"attempts"`
Filesize int `json:"filesize"` // bytes
}
type GenericTrack struct {
ID string `json:"id"`
PlaylistID string `json:"playlistId"`
Name string `json:"name"`
Duration float64 `json:"duration"`
Author string `json:"author"`
Thumbnails []string `json:"thumbnails"`
DownloadProgress uint8 `json:"downloadProgress"`
Status string `json:"status"`
StatusError string `json:"statusError"`
FileSize int64 `json:"filesize"` // bytes
IsConvertedToMp3 bool `json:"isConvertedToMp3"`
ConvertingStatus ConvertStatus `json:"converting"`
filename string
Url string `json:"url"`
}
func NewGenericTrack(id string, name string, author string, filename string, url string) GenericTrack {
return GenericTrack{
ID: id,
Name: name,
Author: author,
Status: TrackStatusPending,
filename: filename,
Url: url,
}
}
func NewFailedTrack(url string, err error) GenericTrack {
return GenericTrack{
Status: TrackStatusFailed,
StatusError: err.Error(),
Url: url,
}
}
func (s GenericTrack) isEmpty() bool {
return s.ID == ""
}
func (s GenericTrack) isFromPlaylist() bool {
return s.PlaylistID != ""
}