soulsync/core
Broque Thomas 666e65ed3b Add repair scanning, tracklist fallbacks, UI polling
Introduce deferred album repair scanning and robust tracklist resolution plus UI/presentation tweaks.

- core/repair_worker.py: Add lazy MusicBrainz and AudioDB client accessors, per-batch folder queues, and register_folder/process_batch to defer folder scans until a batch completes. Implement cascading tracklist resolution (_resolve_album_tracklist) using Spotify/iTunes IDs, Spotify track→album lookup, album search, MusicBrainz release lookup, and AudioDB→MusicBrainz fallback. Add helpers to read Spotify track IDs, MusicBrainz album IDs, album/artist tags from files, MB/AudioDB fetchers, placeholder-ID filtering, and rename associated .lrc files when renaming audio files. Cache/locking and background-threaded scanning included. Improves resilience to missing/placeholder IDs and avoids circular imports.

- web_server.py: Register album folders for repair in post-processing and trigger repair_worker.process_batch when batches complete (multiple completion paths) so scans run after downloads finish.

- webui/static/script.js: Reduce unnecessary background work by skipping many fetches when the tab is hidden, and refresh dashboard-specific data on visibility change to ensure UI updates after OAuth or tab switch.

- webui/static/style.css: Replace glassmorphic backdrop-filters with opaque dark gradients for sidebar and main content to improve GPU rendering and visual consistency.

Overall: Adds reliable post-download album repair scanning using multiple metadata sources and reduces unnecessary client polling and heavy CSS effects for better performance and robustness.
2026-02-23 10:18:31 -08:00
..
acoustid_client.py feat: AcoustID audio verification, MusicBrainz enrichment UI, v1.5 2026-02-05 16:33:07 -08:00
acoustid_verification.py Fix AcoustID verification: MusicBrainz metadata fallback and quarantine reliability 2026-02-19 14:29:59 -08:00
audiodb_client.py Add AudioDB enrichment for artists, albums, and tracks 2026-02-18 14:08:01 -08:00
audiodb_worker.py Retry errored items and prevent incomplete Deezer matches 2026-02-18 20:04:58 -08:00
database_update_worker.py additional logging for navidrome troubleshooting connection status 2026-02-17 08:32:51 -08:00
deezer_client.py Add Deezer enrichment for artists, albums, and track 2026-02-18 16:41:24 -08:00
deezer_worker.py Retry errored items and prevent incomplete Deezer matches 2026-02-18 20:04:58 -08:00
download_orchestrator.py Reload Soulseek client config on orchestrator init 2026-01-11 21:02:23 -08:00
hydrabase_worker.py Add Hydrabase P2P mirror worker 2026-02-21 02:15:43 -08:00
itunes_client.py Fix: Validate iTunes explicit albums have tracks before deduplication 2026-02-09 21:01:40 -08:00
itunes_worker.py Add Spotify & iTunes workers; update repair worker 2026-02-22 22:29:10 -08:00
jellyfin_client.py fix - jellyfin servers can not select a user when determing which library to scan. 2026-02-15 14:09:44 -08:00
listenbrainz_client.py listenbrainz update 2025-11-18 09:57:47 -08:00
listenbrainz_manager.py Fix ListenBrainz playlists not showing when tables don't exist yet 2026-01-29 10:16:19 -08:00
lyrics_client.py auto lyric download 2025-09-22 16:04:06 -07:00
matching_engine.py album name in folder path is no weighted more effectively when trying to choose an album with a specific album source. 2026-02-16 17:59:18 -08:00
media_scan_manager.py navidrome functionality start 2025-09-21 21:02:12 -07:00
metadata_service.py Discover page itunes integration. Spotify and Itunes will have their own pool 2026-01-23 23:05:58 -08:00
musicbrainz_client.py feat(ui): add MusicBrainz enrichment status UI with real-time monitoring 2026-02-03 15:20:04 -08:00
musicbrainz_service.py feat: embed MusicBrainz, Spotify/iTunes IDs, ISRC, and merged genres into audio file tags 2026-02-05 21:26:19 -08:00
musicbrainz_worker.py Retry errored items and prevent incomplete Deezer matches 2026-02-18 20:04:58 -08:00
navidrome_client.py additional logging for navidrome troubleshooting connection status 2026-02-17 08:32:51 -08:00
personalized_playlists.py Discover page itunes integration. Spotify and Itunes will have their own pool 2026-01-23 23:05:58 -08:00
plex_client.py Add content type filters for watchlist artists 2026-01-11 01:33:39 -08:00
plex_scan_manager.py fix logging issue 2025-08-09 13:17:11 -07:00
repair_worker.py Add repair scanning, tracklist fallbacks, UI polling 2026-02-23 10:18:31 -08:00
seasonal_discovery.py fix seasonal discovery showing "Various Artists" and using wrong download mode 2026-02-15 19:29:20 -08:00
soulseek_client.py Fix false positive Soulseek connection test by checking network state 2026-02-20 11:32:52 -08:00
spotify_client.py Use new Spotify /items endpoint with fallback 2026-02-22 19:15:11 -08:00
spotify_worker.py Add Spotify & iTunes workers; update repair worker 2026-02-22 22:29:10 -08:00
tidal_client.py fix tidal auth issue on restart 2026-01-29 11:33:29 -08:00
watchlist_scanner.py Add multi-disc album support with automatic disc subfolder organization 2026-02-16 13:10:03 -08:00
web_scan_manager.py auto scan after download completion and follow with auto incremental update for active server 2025-09-22 15:01:28 -07:00
wishlist_service.py Add API response docs and track metadata 2026-02-21 10:11:09 -08:00
youtube_client.py Add clearing of completed YouTube downloads 2026-01-05 22:00:38 -08:00