fix(artist pin): apply pins in search + fix similar artists (web + android)

Two gaps the pin left, on both platforms:

1. Search still showed the wrong same-name artist's photo. The library search
   now prefers the pin's Deezer picture for a pinned artist (web: search.js
   artist cards; android: LibrarySearchContent via SearchViewModel overrides).

2. Similar Artists were "weird" — they come from Last.fm keyed to the (merged/
   wrong) Navidrome artist. When pinned, use Deezer "related" of the pinned
   artist instead (new deezerRelatedArtists / ItunesClient.lookupRelatedArtists).

Also: web Similar Artists now render with profile pictures (avatar chips), like
the Android app, instead of plain text chips.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
HoneyandClaude Opus 4.8 committed 2026-08-13 18:42:15 +02:00
1 parent 1ee85482f3
commit 26de85a140
9 files changed
+116 -20

No files matched your search

+9
View File
@@ -412,6 +412,15 @@ export async function deezerLookupArtistSongs(artistId, limit=15) {
} catch { return []; }
}
// Related Deezer artists (real pictures + fan counts). Used for the "Ähnliche Künstler" row when a
// pin is active — Last.fm's similar list is keyed to the (possibly merged/wrong) Navidrome artist.
export async function deezerRelatedArtists(artistId, limit=12) {
try {
const r = await fetch(`${_deezerBase()}/artist/${artistId}/related?limit=${limit}`);
return ((await r.json()).data || []).map(_dzArtist);
} catch { return []; }
}
// Deezer's /artist/{id}/albums list OMITS the artist object, so _dzAlbum yields artistName:''.
// We already know whose page this is → backfill artistName so downstream download/detail cards
// don't fall back to the literal "Unknown Artist" (which poisoned the yt-dlp search).