From 640e475c51eb367b00e4e28321fc556381d0c2ec Mon Sep 17 00:00:00 2001 From: Honey Date: Fri, 31 Jul 2026 17:05:14 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20owned=20albums=20wrongly=20shown=20as=20?= =?UTF-8?q?"Unvollst=C3=A4ndig=201/0"=20on=20artist=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Deezer's /artist/{id}/albums list omits nb_tracks, so the album total read as 0 and every owned album (e.g. N!GHT's "Moonlight"/"Yume") was classified as incomplete "1 / 0 Tracks". - Web (detail.js): resolve the real Deezer track count via the album endpoint for MATCHED (owned) albums only — a couple of calls, not the whole discography — and treat an unknown total as complete. Genuine partials still work when the true count is known. - Android (categorizeAlbums): mark partial only when a known total exceeds what you own; unknown total counts as complete (never a false "1 / 0"). - CHANGELOG: documented the fix; corrected the Android lyrics known bug (auto-scroll follows playback but isn't smooth — it jumps rather than glides). SW ns-v55. Co-Authored-By: Claude Opus 4.8 --- CHANGELOG.md | 5 ++- .../app/ui/screen/ItunesArtistScreen.kt | 9 ++-- public/sw.js | 2 +- src/views/detail.js | 45 ++++++++++++------- 4 files changed, 41 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 713180f..8210235 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -78,6 +78,9 @@ Big change: **the entire metadata/search stack moved from Apple's iTunes to Deez - **Android** — **Global 30s-preview control bar**: a preview started on an album/artist/Explore screen used to keep playing with no way to stop it once you navigated away (the local artist page had its *own* uncontrollable preview too). All previews now run through one app-level player with a bar (above the mini player, on every screen) to pause/resume/stop it; starting real playback cancels the preview - **Backend** — Unit tests for the Deezer mapping/matching logic (`backend/test/deezer.test.js`, run with `npm test`), incl. per-track numbering, mixed-artist album-artist stability, explicit flags and the Japanese-title match guard. A live smoke test runs with `RUN_LIVE=1` +### Fixed +- **Web + Android** — Owned albums were wrongly shown as **"Unvollständig 1 / 0 Tracks"** on the artist page. Deezer's `/artist/{id}/albums` list omits `nb_tracks`, so the total read as 0 and every matched album looked incomplete. Web now resolves the real track count from the Deezer album endpoint for **matched (owned) albums only** and treats an unknown total as complete; Android treats an unknown total as complete (never a false partial) + ### Notes - Deploy: `git pull`, then rebuild the frontend (`docker compose up -d --build novasonic-frontend`) and restart the backend (`docker compose restart novasonic-backend`). Service worker bumped to `ns-v54` - Titles a user picked stay as chosen; only derived fields (album, album-artist, genre, year, artwork) follow Deezer @@ -412,7 +415,7 @@ Primary causes identified: - **Web + Android** — yt-dlp backend update / maintenance ### Known Bugs -- **Android (lyrics)** — Synced-lyrics **auto-scroll still does not follow playback**: the current line is highlighted but the list doesn't scroll to keep it centered, so you have to scroll by hand. Web autoscroll works. Not yet fixed. +- **Android (lyrics)** — Synced-lyrics auto-scroll is **not smooth**: it follows playback and highlights the right line, but the list jumps to it rather than gliding. Web autoscroll is smooth. Not yet fixed. - **Web (PWA, desktop)** — The Windows media tile (SMTC) briefly closes and reopens when skipping tracks. Swapping the `