soulsync/core
Broque Thomas 1283041836 Integrate Hydrabase P2P metadata client
Add Hydrabase support as an optional/dev metadata source and comparison tool.

- Add core/hydrabase_client.py: synchronous Hydrabase WebSocket client that normalizes results to Track/Artist/Album types and exposes raw access.
- Update config/settings.py: add hydrabase settings (url, api_key, auto_connect) and getter.
- Update web_server.py: integrate HydrabaseClient, initialize client alongside the existing HydrabaseWorker, add auto-reconnect using saved config, persist credentials on connect/disconnect, add endpoints for status and stored comparisons, background comparison runner (Hydrabase vs Spotify vs iTunes), and adapt multiple search endpoints to optionally use Hydrabase as the primary metadata source with fallbacks.
- Update web UI (webui/index.html, webui/static/script.js, webui/static/style.css): add network stats and source comparison UI, pre-fill saved credentials, show peer count, load/display comparisons, update disconnect behavior to disable dev mode, and add Hydrabase badge styling.

Behavioral notes: when dev mode + Hydrabase are active, searches can be served from Hydrabase and comparisons to Spotify/iTunes are run in background; when Hydrabase fails the code falls back to Spotify/iTunes. Saved Hydrabase credentials are persisted for auto-reconnect; disconnect disables dev mode and auto_connect.

Files touched: config/settings.py, core/hydrabase_client.py, web_server.py, webui/index.html, webui/static/script.js, webui/static/style.css.
2026-02-24 08:11:48 -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 Handle duplicate artists and ratingKey migrations 2026-02-23 13:15:06 -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_client.py Integrate Hydrabase P2P metadata client 2026-02-24 08:11:48 -08:00
hydrabase_worker.py Add Hydrabase P2P mirror worker 2026-02-21 02:15:43 -08:00
itunes_client.py Add release_date to Track and UI 2026-02-23 16:25:23 -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 Raise Spotify API interval; pause enrichments 2026-02-23 21:22:27 -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 Reset watchlist scan timestamps on clear/period change 2026-02-23 16:47:04 -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