fix(worker): resolve MB to the original edition + loosen duration gate
Root cause of albums re-downloading forever despite completing (Linkin Park "Hybrid Theory"): the MB resolver read the tracklist from an arbitrary releases[0], often a later reissue/deluxe. HT resolved to a 2023 13-track reissue (~52 min); a complete 2000 12-track download (~38 min) then failed _download_problem's duration gate (2267s < 2877s×0.85) and fell through peer after peer, never importing. - _pick_release: choose the ORIGINAL standard edition (Official, earliest date) instead of releases[0], so completeness/duration are judged against the edition sources actually deliver. - _DURATION_MIN_RATIO 0.85 -> 0.65: a source legitimately delivering a shorter edition than MB's release shouldn't be rejected; only genuinely truncated/preview downloads (a fraction of expected runtime) should be. Together with the est-time peer ranking, this stops the download→reject→re-download loop. 334 tests pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -22,8 +22,10 @@ _AUDIO_EXT = {".flac", ".mp3", ".m4a", ".opus", ".ogg", ".aac", ".wav"}
|
||||
# Reject a download whose total playtime falls below this fraction of MusicBrainz's expected
|
||||
# total — catches truncated files / preview clips substituted for real tracks that keep the
|
||||
# track COUNT right. Generous, so edition/encoding differences don't false-positive; bonus
|
||||
# tracks (over-long) are always fine.
|
||||
_DURATION_MIN_RATIO = 0.85
|
||||
# tracks (over-long) are always fine. Kept well below 1.0 because a source legitimately delivers a
|
||||
# different edition than MB's resolved release (shorter radio edits, no bonus/live tracks), and only
|
||||
# a genuinely truncated/preview-filled download (playtime a fraction of expected) should be caught.
|
||||
_DURATION_MIN_RATIO = 0.65
|
||||
# Cap how many ranked candidates a single job will actually download+verify before giving up.
|
||||
# Without this, the incomplete-download fall-through can grind through dozens of sources (a popular
|
||||
# album returns ~200 Soulseek candidates), each a slow attempt that also leaves an abandoned slskd
|
||||
|
||||
Reference in New Issue
Block a user