feat: unified artist page with full iTunes/Navidrome album categorization
- loadArtistDetail now works for both Navidrome artists and iTunes-only artists (id=null + itunesArtistId). loadItunesArtistResults from global search now navigates to the same artist-detail page. - Album sections: "In Library" (fully downloaded), "Unvollständig" (partial — e.g. 2/12 tracks), "Noch nicht heruntergeladen" (iTunes-only). Partial albums show X/Y badge and a direct download button on hover. - iTunes albums now fetched via lookup endpoint (up to 200 albums) instead of search (max 20), fixing the missing-albums problem. - "Alle X Songs in Library" expand button fetches all songs across albums and renders them grouped by album with play/context-menu support. - Back button uses _navGoBack() for context-aware navigation. - CSS: .section-count, .album-partial-badge, .card-dl-btn (hover reveal) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
5987e1f303
commit
72f6087043
4 files changed
+213
-140
No files matched your search
@@ -61,6 +61,12 @@ export async function itunesLookupArtistSongs(artistId, limit=15) {
|
||||
return (d.results || []).filter(x => x.wrapperType === 'track');
|
||||
}
|
||||
|
||||
export async function itunesLookupArtistAlbums(artistId, limit=200) {
|
||||
const r = await fetch(`${ITUNES}/lookup?id=${artistId}&entity=album&limit=${limit}&country=us`);
|
||||
const d = await r.json();
|
||||
return (d.results || []).filter(x => x.wrapperType === 'collection' && x.collectionType === 'Album');
|
||||
}
|
||||
|
||||
export async function itunesTopCharts() {
|
||||
const urls = [
|
||||
'https://rss.applemarketingtools.com/api/v2/de/music/most-played/50/albums.json',
|
||||
|
||||
Reference in new issue
Block a user