navidrome/model/mediafile.go

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

73 lines
2.6 KiB
Go
Raw Normal View History

2020-01-15 04:22:34 +01:00
package model
2016-02-27 09:35:01 +01:00
import (
"mime"
"time"
2016-02-27 09:35:01 +01:00
)
type MediaFile struct {
Annotations
Bookmarkable
2020-04-24 16:13:59 +02:00
ID string `json:"id" orm:"pk;column(id)"`
Path string `json:"path"`
Title string `json:"title"`
Album string `json:"album"`
ArtistID string `json:"artistId" orm:"pk;column(artist_id)"`
Artist string `json:"artist"`
AlbumArtistID string `json:"albumArtistId" orm:"pk;column(album_artist_id)"`
2020-04-24 16:13:59 +02:00
AlbumArtist string `json:"albumArtist"`
AlbumID string `json:"albumId" orm:"pk;column(album_id)"`
HasCoverArt bool `json:"hasCoverArt"`
TrackNumber int `json:"trackNumber"`
DiscNumber int `json:"discNumber"`
2020-05-12 17:17:22 +02:00
DiscSubtitle string `json:"discSubtitle"`
2020-04-24 16:13:59 +02:00
Year int `json:"year"`
Size int64 `json:"size"`
2020-04-24 16:13:59 +02:00
Suffix string `json:"suffix"`
Duration float32 `json:"duration"`
BitRate int `json:"bitRate"`
Genre string `json:"genre"`
FullText string `json:"fullText"`
SortTitle string `json:"sortTitle"`
SortAlbumName string `json:"sortAlbumName"`
SortArtistName string `json:"sortArtistName"`
SortAlbumArtistName string `json:"sortAlbumArtistName"`
OrderAlbumName string `json:"orderAlbumName"`
OrderArtistName string `json:"orderArtistName"`
2020-04-24 16:13:59 +02:00
OrderAlbumArtistName string `json:"orderAlbumArtistName"`
Compilation bool `json:"compilation"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
}
func (mf *MediaFile) ContentType() string {
return mime.TypeByExtension("." + mf.Suffix)
}
2016-03-04 03:01:55 +01:00
type MediaFiles []MediaFile
type MediaFileRepository interface {
CountAll(options ...QueryOptions) (int64, error)
Exists(id string) (bool, error)
Put(m *MediaFile) error
2016-03-03 18:08:44 +01:00
Get(id string) (*MediaFile, error)
2020-04-18 02:52:50 +02:00
GetAll(options ...QueryOptions) (MediaFiles, error)
FindByAlbum(albumId string) (MediaFiles, error)
FindAllByPath(path string) (MediaFiles, error)
FindByPath(path string) (*MediaFile, error)
FindPathsRecursively(basePath string) ([]string, error)
GetStarred(options ...QueryOptions) (MediaFiles, error)
GetRandom(options ...QueryOptions) (MediaFiles, error)
Search(q string, offset int, size int) (MediaFiles, error)
2020-01-16 21:56:24 +01:00
Delete(id string) error
2020-07-12 17:48:57 +02:00
DeleteByPath(path string) (int64, error)
2020-02-01 03:09:23 +01:00
AnnotatedRepository
BookmarkableRepository
2016-03-02 19:18:39 +01:00
}
func (mf MediaFile) GetAnnotations() Annotations {
return mf.Annotations
}