From 0dd0d50837bc8368471a7b574ec290e832033591 Mon Sep 17 00:00:00 2001 From: Broque Thomas <26755000+Nezreka@users.noreply.github.com> Date: Wed, 18 Mar 2026 17:48:01 -0700 Subject: [PATCH] Fix Single/Album Dedup flagging EP tracks as redundant singles MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit EPs are no longer classified as singles — removing EP tracks would break the release and conflict with album completeness checks. Only actual singles (album_type='single' or unknown type with <=2 tracks) are flagged as redundant when the same song exists on an album. --- core/repair_jobs/single_album_dedup.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core/repair_jobs/single_album_dedup.py b/core/repair_jobs/single_album_dedup.py index 2008d7c7..eb95b42d 100644 --- a/core/repair_jobs/single_album_dedup.py +++ b/core/repair_jobs/single_album_dedup.py @@ -105,16 +105,16 @@ class SingleAlbumDedupJob(RepairJob): 'artist_thumb_url': artist_thumb or None, } - # Classify: single = album_type 'single' or total_tracks <= 3 - # EPs (4-6 tracks) are borderline — only flag as "single" if explicitly typed + # Classify: only actual singles — EPs are intentional multi-track releases + # that should stay complete (removing tracks would break the EP and + # conflict with album completeness checks) is_single = ( entry['album_type'] == 'single' or - (entry['album_type'] == 'ep' and entry['total_tracks'] <= 6) or - (entry['album_type'] not in ('album', 'compilation') and entry['total_tracks'] <= 3) + (entry['album_type'] not in ('album', 'compilation', 'ep') and entry['total_tracks'] <= 2) ) if is_single: singles.append(entry) - elif entry['total_tracks'] > 3: + elif entry['total_tracks'] > 2: album_tracks.append(entry) logger.info("Single/Album dedup: %d singles/EPs, %d album tracks", len(singles), len(album_tracks))