soulsync/core
Broque Thomas 308773ea7c Add Auto-Import — background staging folder watcher with smart matching
Full auto-import pipeline: background worker watches the staging folder,
identifies music using embedded tags → folder name parsing → AcoustID
fingerprinting, matches files to metadata source tracklists, and
processes high-confidence matches through the existing post-processing
pipeline automatically.

Worker: AutoImportWorker with start/stop/pause/resume, configurable
scan interval (default 60s), confidence threshold (default 90%), and
auto-process toggle. Processes one folder per cycle, alphabetical
order. Disc folder detection, stability checking, content hash dedup.

Confidence gate: 90%+ auto-processes silently, 70-90% queued as
pending review with approve/dismiss actions, <70% flagged for manual
identification. Track matching uses weighted algorithm (title 45%,
artist 15%, track number 30%, album tag 10%).

Database: auto_import_history table tracks every scan result with
folder hash, match data JSON, confidence, status, timestamps.

API: 7 endpoints — status, toggle, settings (GET/POST), results
(filtered/paginated), approve, reject.

UI: Auto tab on Import page with enable toggle, confidence slider,
scan interval selector. Live result cards with album art, confidence
bar (green/yellow/red), status badges, match stats. 5-second polling.
2026-04-17 06:51:08 -07:00
..
repair_jobs Upgrade AcoustID scanner to scan full library with actionable fixes 2026-04-16 10:26:39 -07:00
acoustid_client.py Fix AcoustID test connection falsely failing for valid API keys 2026-04-13 09:37:50 -07:00
acoustid_verification.py Skip AcoustID verification for high-confidence cross-language matches 2026-03-29 20:04:41 -07:00
album_consistency.py Picard-style release preference scoring for MusicBrainz matching 2026-04-16 13:29:04 -07:00
api_call_tracker.py Persist API call history, record rate limit events, fix Spotify re-auth issues 2026-04-05 12:36:58 -07:00
audiodb_client.py Add API Rate Monitor dashboard with real-time speedometer gauges 2026-04-02 10:46:43 -07:00
audiodb_worker.py Improve graceful shutdown and rollback safety 2026-04-12 15:17:18 +03:00
auto_import_worker.py Add Auto-Import — background staging folder watcher with smart matching 2026-04-17 06:51:08 -07:00
automation_engine.py Add Run Script action to automation engine 2026-04-09 18:20:29 -07:00
database_update_worker.py Remove emojis from all Python log and print statements 2026-04-11 21:11:02 -07:00
deezer_client.py Fix playlist cover art not syncing to Plex/Jellyfin from Deezer and other sources 2026-04-15 10:25:38 -07:00
deezer_download_client.py Add Your Albums — multi-source liked albums pool (Spotify, Tidal, Deezer) 2026-04-13 23:02:37 -07:00
deezer_worker.py Improve graceful shutdown and rollback safety 2026-04-12 15:17:18 +03:00
discogs_client.py Fix Discogs cache — add field extractor, wire worker caching, browser UI 2026-04-02 19:47:36 -07:00
discogs_worker.py Improve graceful shutdown and rollback safety 2026-04-12 15:17:18 +03:00
download_orchestrator.py Add first-run setup wizard and fix download path reloading 2026-04-11 22:45:16 -07:00
genius_client.py Add API Rate Monitor dashboard with real-time speedometer gauges 2026-04-02 10:46:43 -07:00
genius_worker.py Improve graceful shutdown and rollback safety 2026-04-12 15:17:18 +03: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 Improve graceful shutdown and rollback safety 2026-04-12 15:17:18 +03:00
itunes_client.py Upgrade artwork to highest available resolution for Spotify and iTunes 2026-04-13 15:04:37 -07:00
itunes_worker.py Improve graceful shutdown and rollback safety 2026-04-12 15:17:18 +03:00
jellyfin_client.py Fix Jellyfin playlist track fetch truncating at default API limit 2026-04-13 15:17:52 -07:00
lastfm_client.py Add Last.fm Track Radio to Discover page 2026-04-14 23:41:36 -07:00
lastfm_worker.py Improve graceful shutdown and rollback safety 2026-04-12 15:17:18 +03:00
lidarr_download_client.py Add Lidarr as 7th download source and validate music video path 2026-04-11 07:59:12 -07:00
listenbrainz_client.py Remove emojis from all Python log and print statements 2026-04-11 21:11:02 -07:00
listenbrainz_manager.py Add Last.fm Track Radio to Discover page 2026-04-14 23:41:36 -07:00
listening_stats_worker.py Tighten up teardown logic 2026-04-12 18:13:27 +03:00
lyrics_client.py Remove emojis from all Python log and print statements 2026-04-11 21:11:02 -07:00
matching_engine.py Fix album matching using full similarity instead of word subset check 2026-04-12 10:48:24 -07:00
media_scan_manager.py Tighten up teardown logic 2026-04-12 18:13:27 +03:00
metadata_cache.py Reject tracks with Unknown Artist from metadata cache 2026-04-12 09:27:17 -07:00
metadata_service.py Reduce discovery fan-out and pagination 2026-04-16 20:59:26 +03:00
musicbrainz_client.py Add API Rate Monitor dashboard with real-time speedometer gauges 2026-04-02 10:46:43 -07:00
musicbrainz_service.py Add metadata cache maintenance and health monitoring 2026-03-30 07:40:20 -07:00
musicbrainz_worker.py Improve graceful shutdown and rollback safety 2026-04-12 15:17:18 +03:00
navidrome_client.py Remove emojis from all Python log and print statements 2026-04-11 21:11:02 -07:00
personalized_playlists.py Replace all legacy metadata_service imports with canonical functions 2026-04-10 12:52:36 -07:00
plex_client.py Fix playlist cover art not syncing to Plex/Jellyfin from Deezer and other sources 2026-04-15 10:25:38 -07:00
plex_scan_manager.py Tighten up teardown logic 2026-04-12 18:13:27 +03:00
qobuz_client.py Reject Qobuz 30-second sample/preview downloads 2026-04-15 20:41:48 -07:00
qobuz_worker.py Improve graceful shutdown and rollback safety 2026-04-12 15:17:18 +03:00
repair_worker.py Upgrade AcoustID scanner to scan full library with actionable fixes 2026-04-16 10:26:39 -07:00
replaygain.py Add ReplayGain analysis and tagging support 2026-04-14 19:09:25 -07:00
seasonal_discovery.py Remove emojis from all Python log and print statements 2026-04-11 21:11:02 -07:00
soulid_worker.py Improve graceful shutdown and rollback safety 2026-04-12 15:17:18 +03:00
soulseek_client.py Add first-run setup wizard and fix download path reloading 2026-04-11 22:45:16 -07:00
spotify_client.py Use cache before Spotify auth checks 2026-04-16 09:54:00 +03: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 Fix Spotify enrichment worker infinite loop on pre-matched artists 2026-04-15 20:37:20 -07:00
tag_writer.py Add ReplayGain analysis and tagging support 2026-04-14 19:09:25 -07:00
tidal_client.py Fix playlist cover art not syncing to Plex/Jellyfin from Deezer and other sources 2026-04-15 10:25:38 -07:00
tidal_download_client.py Improve Tidal download failure diagnostics and error messaging 2026-04-14 14:07:50 -07:00
tidal_worker.py Improve graceful shutdown and rollback safety 2026-04-12 15:17:18 +03:00
watchlist_scanner.py Discovery fan-out and playlists follow source priority 2026-04-17 08:49:19 +03:00
web_scan_manager.py Tighten up teardown logic 2026-04-12 18:13:27 +03:00
wishlist_service.py Fix wishlisted tracks showing 'Unknown Album' with no cover art 2026-03-18 14:23:53 -07:00
worker_utils.py Improve graceful shutdown and rollback safety 2026-04-12 15:17:18 +03:00
youtube_client.py Add first-run setup wizard and fix download path reloading 2026-04-11 22:45:16 -07:00