From 55c09209b6ebdc0ecd7ca17d5b173a8db0cb23b1 Mon Sep 17 00:00:00 2001 From: xavier <1391918+xaviercrochet@users.noreply.github.com> Date: Fri, 25 Feb 2022 17:38:36 +0100 Subject: [PATCH] feat(subsonic): improve getArtistInfo2.view similar artist results (#203) Co-authored-by: xavier --- server/ctrlsubsonic/handlers_by_tags.go | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/server/ctrlsubsonic/handlers_by_tags.go b/server/ctrlsubsonic/handlers_by_tags.go index 9fec4db..03c6c2d 100644 --- a/server/ctrlsubsonic/handlers_by_tags.go +++ b/server/ctrlsubsonic/handlers_by_tags.go @@ -296,7 +296,12 @@ func (c *Controller) ServeGetArtistInfoTwo(r *http.Request) *spec.Response { count := params.GetOrInt("count", 20) inclNotPresent := params.GetOrBool("includeNotPresent", false) - for i, similarInfo := range info.Similar.Artists { + similarArtists, err := lastfm.ArtistGetSimilar(apiKey, artist.Name) + if err != nil { + return spec.NewError(0, "fetching artist similar: %v", err) + } + + for i, similarInfo := range similarArtists.Artists { if i == count { break } @@ -311,16 +316,15 @@ func (c *Controller) ServeGetArtistInfoTwo(r *http.Request) *spec.Response { if errors.Is(err, gorm.ErrRecordNotFound) && !inclNotPresent { continue } - similar := &spec.SimilarArtist{ - ID: &specid.ID{}, - } + artistID := &specid.ID{} if artist.ID != 0 { - similar.ID = artist.SID() + artistID = artist.SID() } - similar.Name = similarInfo.Name - similar.AlbumCount = artist.AlbumCount - sub.ArtistInfoTwo.SimilarArtist = append( - sub.ArtistInfoTwo.SimilarArtist, similar) + sub.ArtistInfoTwo.SimilarArtist = append(sub.ArtistInfoTwo.SimilarArtist, &spec.SimilarArtist{ + ID: artistID, + Name: similarInfo.Name, + AlbumCount: artist.AlbumCount, + }) } return sub