diff --git a/core/external_info.go b/core/external_info.go index ce4344240..af707f599 100644 --- a/core/external_info.go +++ b/core/external_info.go @@ -83,6 +83,8 @@ func (e *externalInfo) callArtistInfo(ctx context.Context, artist *model.Artist, log.Debug(ctx, "Got info from Last.FM", "artist", artist.Name, "info", lfmArtist.Bio.Summary, "elapsed", time.Since(start)) } e.setBio(info, lfmArtist.Bio.Summary) + e.setLastFMUrl(info, lfmArtist.URL) + e.setMbzID(info, lfmArtist.MBID) e.setSimilar(ctx, info, lfmArtist.Similar.Artists, includeNotPresent) }() } @@ -126,6 +128,18 @@ func (e *externalInfo) setBio(info *model.ArtistInfo, bio string) { } } +func (e *externalInfo) setLastFMUrl(info *model.ArtistInfo, url string) { + if info.LastFMUrl == "" { + info.LastFMUrl = url + } +} + +func (e *externalInfo) setMbzID(info *model.ArtistInfo, mbzID string) { + if info.MbzID == "" { + info.MbzID = mbzID + } +} + func (e *externalInfo) setSmallImageUrl(info *model.ArtistInfo, url string) { if info.SmallImageUrl == "" { info.SmallImageUrl = url diff --git a/model/artist_info.go b/model/artist_info.go index 8fef888a5..fff2c2c39 100644 --- a/model/artist_info.go +++ b/model/artist_info.go @@ -3,9 +3,11 @@ package model type ArtistInfo struct { ID string Name string + MbzID string Bio string Similar []Artist SmallImageUrl string MediumImageUrl string LargeImageUrl string + LastFMUrl string } diff --git a/server/subsonic/browsing.go b/server/subsonic/browsing.go index dea434c19..a0a5957bf 100644 --- a/server/subsonic/browsing.go +++ b/server/subsonic/browsing.go @@ -271,6 +271,8 @@ func (c *BrowsingController) GetArtistInfo(w http.ResponseWriter, r *http.Reques response.ArtistInfo.SmallImageUrl = info.SmallImageUrl response.ArtistInfo.MediumImageUrl = info.MediumImageUrl response.ArtistInfo.LargeImageUrl = info.LargeImageUrl + response.ArtistInfo.LastFmUrl = info.LastFMUrl + response.ArtistInfo.MusicBrainzID = info.MbzID for _, s := range info.Similar { similar := responses.Artist{} similar.Id = s.ID