soulsync/tests/repair_jobs
BoulderBadgeDad 116edeb477 tools: add Preview Clip Cleanup repair job (detect ~30s previews, re-fetch full track)
HiFi (and occasionally other) downloads sometimes deliver a ~30s preview clip instead of the
full song; it lands in the library looking real. new repair job scans short tracks (duration
<= 30s, configurable), looks up the EXPECTED length from the track's metadata source
(spotify/itunes/mb get_track_details), and flags any whose real length is much longer than the
file (default: >= 30s longer) as a preview clip.

approving the finding (repair_worker._fix_short_preview_track) deletes the preview file (path
resolved via _resolve_file_path like the other delete tools), drops the DB row so the track
goes missing, and re-adds it to the wishlist with the full payload (mirrors _fix_dead_file)
so the real version downloads. scan ONLY creates findings — nothing destructive without user
approval, like every other tool.

conservative: genuine short tracks (source agrees they're short) and tracks whose length can't
be verified are skipped, never flagged. registered the job + finding-type label/fix-button in
the UI. 5 tests (scan flag/skip/scope + fix delete+remove+wishlist); 89 repair tests green.
2026-06-27 16:07:41 -07:00
..
test_quality_upgrade.py fix(repair): merge duplicate _fix_quality_upgrade + update tests (#896) 2026-06-24 21:40:04 +02:00
test_relocate.py #704: add "Relocate" fix for AcoustID mismatches — retag + restage for re-import 2026-06-11 12:01:05 -07:00
test_short_preview_track.py tools: add Preview Clip Cleanup repair job (detect ~30s previews, re-fetch full track) 2026-06-27 16:07:41 -07:00