#768 added canonical_source_track to the live-sync matcher and the playlist editor reconcile, but NOT to the two paths that actually run for file/CSV mirrored playlists: the discovery worker (core/discovery/playlist.py) and the DB-only matcher (core/discovery/sync.py). YouTube playlists are cleaned at ingest, so they matched; file playlists fed the raw 'Arctic Monkeys - Do I Wanna Know?' title into search+scoring and never matched the library's clean 'Do I Wanna Know?' → reported missing / shown as 'extra'. Add a conservative canonical best-of to both: score with the raw title AND the canonicalized one, keep the better. canonical_source_track only strips an '<artist> - ' prefix when it equals the artist, so it can only add a candidate. Tests: _canonical_best_score seam (file-style match / clean title scored once / keeps original when better). |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| beatport.py | ||
| deezer.py | ||
| endpoints.py | ||
| hero.py | ||
| listenbrainz.py | ||
| manual_match.py | ||
| matching.py | ||
| playlist.py | ||
| qobuz.py | ||
| quality_scanner.py | ||
| scoring.py | ||
| spotify_public.py | ||
| sync.py | ||
| tidal.py | ||
| youtube.py | ||