You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
955 B
Python
26 lines
955 B
Python
from argparse import ArgumentParser
|
|
from pathlib import Path
|
|
import re
|
|
import sys
|
|
|
|
ap= ArgumentParser("add_missing_opf_finalize")
|
|
ap.add_argument("library", help="the library to fix (keep)")
|
|
ap.add_argument("tmp", help="the tmp library to use as source of OPF files")
|
|
args = ap.parse_args()
|
|
|
|
for author_folder in Path(args.library).glob("*"):
|
|
if author_folder.is_dir():
|
|
for title_folder in author_folder.glob("*"):
|
|
m = re.search(r"^(.*)\((\d+)\)$", title_folder.name)
|
|
# print (f"{title_folder}, {m.groups()}")
|
|
if title_folder.is_dir() and m is not None:
|
|
title = m.group(1)
|
|
calibre_id = int(m.group(2))
|
|
opf = title_folder / "metadata.opf"
|
|
opf_new = title_folder / "metadata_new.opf"
|
|
if (not opf.exists()) and opf_new.exists():
|
|
print (f"Renaming {opf_new} -> {opf}")
|
|
opf_new.rename(opf)
|
|
|
|
|