soulsync/core
Broque Thomas 3f866ebf5e Add daily budget to Spotify enrichment worker to prevent rate limit bans
The background enrichment worker now caps itself at 3,000 processed items
per calendar day. Counter resets at midnight automatically. When exhausted,
the worker sleeps and checks every 5 minutes for a new day.

This is scoped entirely to the enrichment worker — user-initiated Spotify
API calls (searches, playlist ops, album lookups, etc.) are completely
unaffected. Budget status is exposed in the worker's get_stats() response
for the dashboard widget.
2026-03-29 15:34:41 -07:00
..
repair_jobs Fix enhanced view reorganize not moving sidecars, add template debug logging 2026-03-24 07:12:35 -07:00
acoustid_client.py Helper V2 complete + enrichment worker fixes 2026-03-26 12:20:58 -07:00
acoustid_verification.py Strip all parentheticals in AcoustID title normalization 2026-03-13 21:28:18 -07:00
album_consistency.py Add Picard-style MB release preflight for album downloads 2026-03-23 12:42:29 -07:00
audiodb_client.py Add AudioDB enrichment for artists, albums, and tracks 2026-02-18 14:08:01 -08:00
audiodb_worker.py Helper V2 complete + enrichment worker fixes 2026-03-26 12:20:58 -07:00
automation_engine.py Fix automation signal chain: forward event data (playlist_id) to action handlers 2026-03-23 08:51:52 -07:00
database_update_worker.py Fix deep scan skipping file path updates for existing tracks 2026-03-18 13:03:01 -07:00
deezer_client.py Fix missing year and track numbers when Deezer metadata cache is stale 2026-03-27 11:24:36 -07:00
deezer_download_client.py Fix Deezer download crash: config_manager not in scope 2026-03-24 13:12:23 -07:00
deezer_worker.py Helper V2 complete + enrichment worker fixes 2026-03-26 12:20:58 -07:00
download_orchestrator.py Integrate Deezer download source into orchestrator 2026-03-23 15:34:27 -07:00
genius_client.py Fix Genius 429 backoff by re-raising rate limit errors from _make_request 2026-03-10 15:46:37 -07:00
genius_worker.py Helper V2 complete + enrichment worker fixes 2026-03-26 12:20:58 -07:00
hifi_client.py Add per-source quality fallback toggle for streaming downloads (#187) 2026-03-24 11:42:47 -07:00
hydrabase_client.py Add missing _get_artist_image_from_albums to HydrabaseClient 2026-03-23 17:54:21 -07:00
hydrabase_worker.py Use nonces and drain interleaved stats in Hydrabase 2026-02-24 19:16:14 -08:00
itunes_client.py Add collaborative album artist handling with per-source resolution 2026-03-27 13:39:27 -07:00
itunes_worker.py Helper V2 complete + enrichment worker fixes 2026-03-26 12:20:58 -07:00
jellyfin_client.py Add Listening Stats page with media server play data integration 2026-03-22 13:18:14 -07:00
lastfm_client.py Add scrobbling to Last.fm/ListenBrainz + update What's New 2026-03-22 14:38:53 -07:00
lastfm_worker.py Helper V2 complete + enrichment worker fixes 2026-03-26 12:20:58 -07:00
listenbrainz_client.py Add scrobbling to Last.fm/ListenBrainz + update What's New 2026-03-22 14:38:53 -07:00
listenbrainz_manager.py Fix per-profile ListenBrainz playlist cache scoping and stale data recovery 2026-03-14 21:11:59 -07:00
listening_stats_worker.py Increase stats page top artists/albums/tracks from 10 to 25 2026-03-22 16:39:53 -07:00
lyrics_client.py auto lyric download 2025-09-22 16:04:06 -07:00
matching_engine.py Add Soulseek peer queue filtering and configurable download timeout 2026-03-19 11:47:37 -07:00
media_scan_manager.py Fix automated scans for non-Plex servers & incremental scan performance 2026-03-12 11:17:32 -07:00
metadata_cache.py Multi-source genre explorer with Deezer genre support and cross-source routing 2026-03-24 19:36:11 -07:00
metadata_service.py Complete Hydrabase as selectable fallback metadata source 2026-03-20 14:18:10 -07: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 Fix MusicBrainz release matching preferring standard over deluxe 2026-03-21 10:48:35 -07:00
musicbrainz_worker.py Fix enrichment retry loops, cover art finding dupes, and Spotify rate limit during art scan 2026-03-22 23:24:42 -07:00
navidrome_client.py Fix Navidrome playlist sync truncation, clarify discovery label 2026-03-26 14:15:20 -07:00
personalized_playlists.py Multi-source genre explorer with Deezer genre support and cross-source routing 2026-03-24 19:36:11 -07:00
plex_client.py Add Listening Stats page with media server play data integration 2026-03-22 13:18:14 -07:00
plex_scan_manager.py fix logging issue 2025-08-09 13:17:11 -07:00
qobuz_client.py Add per-source quality fallback toggle for streaming downloads (#187) 2026-03-24 11:42:47 -07:00
qobuz_worker.py Helper V2 complete + enrichment worker fixes 2026-03-26 12:20:58 -07:00
repair_worker.py Add logging to path mismatch fix handler for diagnosis 2026-03-28 09:26:19 -07:00
seasonal_discovery.py Fix seasonal playlists not appearing when Deezer is active source 2026-03-18 10:28:54 -07:00
soulid_worker.py Rebuild artist SoulID: track-verified canonical ID from Deezer + iTunes 2026-03-23 18:34:36 -07:00
soulseek_client.py Enforce FLAC bit depth preference and prioritize audio quality in sorting 2026-03-25 15:59:22 -07:00
spotify_client.py Add daily budget to Spotify enrichment worker to prevent rate limit bans 2026-03-29 15:34:41 -07:00
spotify_public_scraper.py Add Spotify Link tab for public playlist/album scraping without API credentials 2026-03-15 21:25:05 -07:00
spotify_worker.py Add daily budget to Spotify enrichment worker to prevent rate limit bans 2026-03-29 15:34:41 -07:00
tag_writer.py Fix OPUS files losing all metadata during import/post-processing 2026-03-28 09:37:12 -07:00
tidal_client.py Fix Tidal token refresh hammering when client credentials removed 2026-03-20 07:28:32 -07:00
tidal_download_client.py Add per-source quality fallback toggle for streaming downloads (#187) 2026-03-24 11:42:47 -07:00
tidal_worker.py Helper V2 complete + enrichment worker fixes 2026-03-26 12:20:58 -07:00
watchlist_scanner.py Backfill missing watchlist artist images during scan 2026-03-28 11:13:16 -07:00
web_scan_manager.py Fix automated scans for non-Plex servers & incremental scan performance 2026-03-12 11:17:32 -07:00
wishlist_service.py Fix wishlisted tracks showing 'Unknown Album' with no cover art 2026-03-18 14:23:53 -07:00
youtube_client.py Fix YouTube downloads failing with "Requested format not available" 2026-03-26 19:07:50 -07:00