mirror of https://github.com/Nezreka/SoulSync.git
Live-test bug: Spotify-flow downloads with Torrent Only as the active source produced 'download_failed' for every track. Searches hit Prowlarr fine but no candidate ever got picked. Root cause was in core/downloads/validation.py's get_valid_candidates: - The streaming-source allowlist for the structured-metadata path didn't include 'torrent' / 'usenet', so torrent results fell into the Soulseek matching branch. - Soulseek matching parses ``candidate.filename`` as a slskd-style ``Artist/Album/Track.flac`` path. Torrent / usenet filenames are encoded as ``<download_url>||<display_name>`` so the orchestrator can recover the URL — splitting that string on slashes produced garbage path segments that never matched the expected artist, every candidate failed the artist-folder gate, returned [], track status flipped to 'not_found'. Fixes: - _streaming_sources now includes 'torrent' and 'usenet'. They take the structured-metadata scoring path that reads r.title / r.artist directly (the projection layer pre-fills both correctly). - Artist gate skipped for torrent/usenet, same as YouTube. Album- level releases legitimately don't expose per-track artist — the projection falls back to the indexer name as the 'artist' field, which would otherwise fail the gate against every Spotify artist. - New album-name fallback scoring: for torrent/usenet only, the candidate title is ALSO scored against the wanted track's spotify_track.album field, and the max of (track-title score, album-title score) wins. This makes a candidate titled "GNX (2024) [FLAC]" match every track on the GNX album rather than scoring near zero against a specific track title like "Luther (with SZA)". match_type 'album_release' for visibility. All 9 existing validation tests still pass.pull/671/head
parent
e83b661471
commit
a2db5382bb
Loading…
Reference in new issue