feat: store and expose individual track artists

a
This commit is contained in:
sentriz
2023-10-28 18:27:17 +01:00
committed by Senan Kelly
parent 1a45356fa2
commit c1a34dc021
24 changed files with 176 additions and 64 deletions

View File

@@ -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

View File

@@ -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") }