#!/usr/bin/env python3 """ Replace JRiver date imported fields with date modified when the latter is earlier. """ import sys from pathlib import Path def get_import_date(line: str) -> int: """Extract and return the date imported value from a date imported field.""" date = line.lstrip('').rstrip('\n') return int(date) def get_create_date(line: str) -> int: """Extract and return the date modified value from a date modified field.""" date = line.lstrip('').rstrip('\n') return int(date) def main() -> None: """Main function to process JRiver library file.""" if len(sys.argv) != 3: print("Usage: jriver-replace-date-imported ", file=sys.stderr) sys.exit(1) in_file = Path(sys.argv[1]) out_file = Path(sys.argv[2]) if not in_file.exists(): print(f"[ERROR] Input file '{in_file}' does not exist.", file=sys.stderr) sys.exit(1) # Read input file with open(in_file, "r", encoding="utf-8") as f: lines = f.readlines() # Process lines and replace dates where appropriate import_date: int = 0 date_imported_line: int = 0 replacements = 0 for lnum, line in enumerate(lines): if '' in line: import_date = get_import_date(line) date_imported_line = lnum elif '' in line: create_date = get_create_date(line) if create_date < import_date: print(f"[INFO] Replacing {import_date} with {create_date} at line {date_imported_line}") lines[date_imported_line] = f'{create_date}\n' replacements += 1 # Write output file with open(out_file, 'w', encoding="utf-8") as f: f.writelines(lines) print(f"[SUCCESS] Made {replacements} replacements. Output written to '{out_file}'.") if __name__ == "__main__": main()