Add read-only database V2 parser
This commit is contained in:
@@ -3,6 +3,7 @@ import argparse
|
||||
|
||||
from serato_doctor.config import ScanConfig
|
||||
from serato_doctor.crate_parser import load_library_crates
|
||||
from serato_doctor.database_parser import parse_database
|
||||
from serato_doctor.health import analyze_health
|
||||
from serato_doctor.logging import configure_logging
|
||||
from serato_doctor.models.library import Library
|
||||
@@ -57,10 +58,13 @@ def main():
|
||||
|
||||
crates = load_library_crates(config.serato, config.reference_roots)
|
||||
filesystem = scan_filesystem(config.music)
|
||||
database_path = config.serato / "database V2"
|
||||
database = parse_database(database_path) if database_path.is_file() else None
|
||||
library = Library.from_crates(
|
||||
crates=crates,
|
||||
tracks=filesystem.tracks,
|
||||
broken_symlinks=filesystem.broken_symlinks,
|
||||
database=database,
|
||||
)
|
||||
results = library.reconcile_by_filename()
|
||||
missing_count = sum(1 for result in results if not result.exists_by_filename)
|
||||
@@ -99,6 +103,11 @@ def main():
|
||||
print(
|
||||
f"Dynamic References Excluded: {health.dynamic_references_excluded}"
|
||||
)
|
||||
print(f"Database Entries: {health.database_entries}")
|
||||
print(f"Database / Library Matches: {health.database_library_matches}")
|
||||
print(f"Database Entries Outside Scan: {health.database_unmatched_entries}")
|
||||
print(f"Tracks Missing From Database: {health.tracks_missing_from_database}")
|
||||
print(f"Duplicate Database Paths: {health.duplicate_database_paths}")
|
||||
else:
|
||||
write_csv(results, config.out)
|
||||
write_missing_report(results, config.report)
|
||||
|
||||
Reference in New Issue
Block a user