Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions beko_translate/pdf_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import sys
import time
from pathlib import Path
from typing import Iterable, List, Optional, Tuple
from typing import Iterable, List, Literal, Optional, Tuple

from . import cli as beko_cli
from .translation_models import resolve_model_alias
Expand Down Expand Up @@ -334,7 +334,9 @@ def cleanup_extras(
sys.stderr.write(f"Warning: failed to remove {path}: {exc}\n")


def pick_output_file(paths: Iterable[Path], stem: str) -> Optional[Path]:
def pick_output_file(
paths: Iterable[Path], stem: str, dual_or_mono: Literal["dual", "mono"]
) -> Optional[Path]:
pdfs = [p for p in paths if p.suffix.lower() == ".pdf"]
if not pdfs:
return None
Expand All @@ -343,7 +345,7 @@ def priority(p: Path) -> tuple:
name = p.name
return (
0 if "no_watermark" in name else 1,
0 if "dual" in name else 1,
0 if dual_or_mono in name else 1,
0 if stem in name else 1,
-p.stat().st_mtime,
)
Expand All @@ -359,6 +361,7 @@ def translate_pdf(
base_prefix: str,
base_clean: str,
pdf2zh_args: list[str],
dual_or_mono: Literal["dual", "mono"],
) -> bool:
cmd = (
shlex.split(PDF2ZH_COMMAND)
Expand All @@ -374,7 +377,7 @@ def translate_pdf(
)
return False

output_file = pick_output_file(output_dir.glob("*.pdf"), pdf_path.stem)
output_file = pick_output_file(output_dir.glob("*.pdf"), pdf_path.stem, dual_or_mono)
if output_file is None:
sys.stderr.write(
f"Translated output for {pdf_path.name} not found in {output_dir}.\n"
Expand Down Expand Up @@ -707,6 +710,7 @@ def main() -> int:
base_raw,
base_clean,
pdf2zh_args,
"mono" if args.no_dual else "dual",
)
if success:
print(f"[done] {dest}")
Expand Down