Add duplicate filename diagnostics

This commit is contained in:
Philip Guzman
2026-06-30 18:52:16 -07:00
parent d764f910e4
commit 6449c7de6a
10 changed files with 212 additions and 7 deletions
+19 -6
View File
@@ -1,7 +1,7 @@
from collections import Counter
from serato_doctor.duplicates import find_duplicate_groups
from serato_doctor.matching import MatchingEngine
from serato_doctor.models.crate import CrateKind
from serato_doctor.models.duplicate import DuplicateKind
from serato_doctor.models.health import HealthReport
from serato_doctor.models.library import Library
@@ -23,8 +23,17 @@ def analyze_health(library: Library) -> HealthReport:
round(healthy_count / len(results) * 100, 1) if results else None
)
disk_name_counts = Counter(track.filename for track in library.tracks)
duplicate_counts = [count for count in disk_name_counts.values() if count > 1]
duplicate_groups = find_duplicate_groups(library.tracks)
exact_duplicates = [
group
for group in duplicate_groups
if group.kind is DuplicateKind.EXACT_NAME
]
cloud_conflicts = [
group
for group in duplicate_groups
if group.kind is DuplicateKind.CLOUD_CONFLICT
]
referenced_names = {reference.filename for reference in library.references}
unused_count = sum(
1 for track in library.tracks if track.filename not in referenced_names
@@ -45,8 +54,12 @@ def analyze_health(library: Library) -> HealthReport:
{result.reference.filename for result in missing}
),
disk_tracks=len(library.tracks),
duplicate_filename_groups=len(duplicate_counts),
duplicate_files=sum(count - 1 for count in duplicate_counts),
duplicate_filename_groups=len(exact_duplicates),
duplicate_files=sum(group.extra_files for group in exact_duplicates),
suspected_cloud_conflict_groups=len(cloud_conflicts),
suspected_cloud_conflict_files=sum(
group.extra_files for group in cloud_conflicts
),
unused_tracks=unused_count,
suggested_matches=suggested_count,
static_crates=sum(