feat: store and expose individual track artists
a
This commit is contained in:
@@ -15,6 +15,7 @@ type Info interface {
|
||||
Title() string
|
||||
BrainzID() string
|
||||
Artist() string
|
||||
Artists() []string
|
||||
Album() string
|
||||
AlbumArtist() string
|
||||
AlbumArtists() []string
|
||||
@@ -42,6 +43,13 @@ func MustArtist(p Info) string {
|
||||
return "Unknown Artist"
|
||||
}
|
||||
|
||||
func MustArtists(p Info) []string {
|
||||
if r := p.Artists(); len(r) > 0 {
|
||||
return r
|
||||
}
|
||||
return []string{MustArtist(p)}
|
||||
}
|
||||
|
||||
func MustAlbumArtist(p Info) string {
|
||||
if r := p.AlbumArtist(); r != "" {
|
||||
return r
|
||||
|
||||
@@ -34,6 +34,7 @@ type info struct {
|
||||
func (i *info) Title() string { return first(find(i.raw, "title")) }
|
||||
func (i *info) BrainzID() string { return first(find(i.raw, "musicbrainz_trackid")) } // musicbrainz recording ID
|
||||
func (i *info) Artist() string { return first(find(i.raw, "artist")) }
|
||||
func (i *info) Artists() []string { return find(i.raw, "artists") }
|
||||
func (i *info) Album() string { return first(find(i.raw, "album")) }
|
||||
func (i *info) AlbumArtist() string { return first(find(i.raw, "albumartist", "album artist")) }
|
||||
func (i *info) AlbumArtists() []string { return find(i.raw, "albumartists", "album_artists") }
|
||||
|
||||
Reference in New Issue
Block a user