diff --git a/web_server.py b/web_server.py index 303db8a5..4dfa8b01 100644 --- a/web_server.py +++ b/web_server.py @@ -20974,16 +20974,75 @@ def get_version_info(): "subtitle": f"Version {SOULSYNC_VERSION} β Latest Changes", "sections": [ { - "title": "π Download History β Source Provenance", - "description": "Download history now tracks the original source file info for every download", + "title": "π΅ Deezer User Playlists β Browse & Download Your Library", + "description": "New Deezer tab on the Sync page shows your personal playlists via ARL token β same flow as Spotify", "features": [ - "β’ Source filename, track ID, and original track title saved with each download", - "β’ AcoustID verification result (Verified/Failed/Skipped/Off) shown as a badge per entry", - "β’ Source details displayed in monospace under each history entry for easy debugging", - "β’ Settings Connections tab redesigned with collapsible accordion services and brand-colored dots" + "β’ Click Refresh to load all your Deezer playlists with track counts", + "β’ Click any playlist to view tracks, then Download Missing or Sync β no discovery step needed", + "β’ Existing Deezer URL import moved to 'Deezer Link' tab (unchanged)", + "β’ ARL token field added to Connections tab alongside Downloads tab with bidirectional sync", + "β’ Album release dates fetched for proper $year template variable support" + ], + "usage_note": "Configure your ARL token in Settings > Connections or Downloads, then open the Deezer tab on the Sync page." + }, + { + "title": "π Qobuz Token Auth β CAPTCHA Bypass", + "description": "Qobuz added reCAPTCHA to their login β token auth lets you paste your session token directly", + "features": [ + "β’ New 'Auth Token' field on both Connections and Downloads tabs for Qobuz", + "β’ Log into play.qobuz.com in your browser, copy X-User-Auth-Token from DevTools, paste it in", + "β’ Bypasses the CAPTCHA entirely β existing email/password login still works if your session is active", + "β’ Token is validated and saved as a normal session β identical to email/password login" + ], + "usage_note": "If Qobuz email/password login fails, use the Auth Token field instead." + }, + { + "title": "π‘οΈ Streaming Source Matching β Artist Gate", + "description": "Tidal, Qobuz, HiFi, and Deezer downloads no longer match to wrong artists", + "features": [ + "β’ Artist similarity gate rejects candidates below 0.4 match threshold", + "β’ Streaming source threshold raised from 0.55 to 0.60", + "β’ No more fallback to lenient Soulseek filename matcher for structured API sources", + "β’ Fixed single-char artist containment bug (e.g. 'Bε°ηΊ' no longer matches 'B.B. King')", + "β’ YouTube and Soulseek matching completely unchanged" + ], + "usage_note": "Downloads from official sources are now much more accurate. Check Download History for verification details." + }, + { + "title": "π Download History β Source Provenance", + "description": "Collapsible download history with full source tracking and AcoustID verification badges", + "features": [ + "β’ Expected vs Downloaded comparison β shows what you asked for vs what the source provided", + "β’ Mismatched downloads highlighted in red for easy identification", + "β’ AcoustID verification badge per entry: Verified (green), Failed (red), Skipped (orange), Off (gray)", + "β’ Source filename, track ID, and artist saved with every download", + "β’ Click anywhere on an entry to expand/collapse details" ], "usage_note": "Click 'Download History' on the Dashboard to see source provenance for new downloads." }, + { + "title": "π§ Fixes & Improvements", + "description": "Bug fixes, quality of life improvements, and new settings", + "features": [ + "β’ Artist names no longer stored as lowercase β fixed static method shadowing instance method. Run a database update to fix existing names.", + "β’ Watchlist scanner skips future/unreleased albums β no more garbage downloads from albums not yet out", + "β’ Playlist sync tracks now tagged with correct track numbers instead of always 01", + "β’ Emby playlist sync fixed β integer IDs now accepted alongside Jellyfin GUIDs", + "β’ Discovery fix search now tries all metadata sources (Spotify β Deezer β iTunes) with automatic fallback", + "β’ Album completeness scanner skips zero-track albums to prevent auto-fill errors", + "β’ Global search string escaping fixed β albums with newlines in metadata no longer crash", + "β’ Download history timestamps fixed β no longer always showing 'Just now'", + "β’ Discogs added to enrichment service whitelist β Enrich button now works for Discogs", + "β’ Settings Connections tab redesigned with collapsible accordion services and brand-colored dots", + "β’ Metadata source filter on Library page β filter artists by matched/unmatched to any service", + "β’ Database Maintenance UI β VACUUM and incremental vacuum in Settings > Advanced", + "β’ Music Library Paths setting β configure where your music files live for tag writing and file detection", + "β’ Replace lower quality files on import β opt-in toggle in Settings > Library", + "β’ HiFi API instance health check in Settings > Downloads", + "β’ Debug test activity feed message removed from startup", + "β’ Global search downloads now create bubble snapshots on Dashboard and Search page" + ] + }, { "title": "πΊοΈ Artist Map β Visualize Your Music Universe", "description": "Three interactive canvas-based visualization modes on the Discover page", diff --git a/webui/static/docs.js b/webui/static/docs.js index 6b80bfb2..59c1ba58 100644 --- a/webui/static/docs.js +++ b/webui/static/docs.js @@ -79,7 +79,7 @@ const DOCS_SECTIONS = [
arl). Used for downloads AND user playlist access.Artist/Album/TrackNum - Title.ext