Add duplicate filename diagnostics
This commit is contained in:
+19
-6
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user