36 lines
1.7 KiB
Python
36 lines
1.7 KiB
Python
"""Prepare a cover-generation job, then package a reviewed image and Chinese metadata."""
|
|
import argparse
|
|
import json
|
|
import sys
|
|
from pathlib import Path
|
|
sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
|
|
from src.edition.localize import prepare, localize, audit_edition
|
|
from src.qa.headless import audit_pair
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description=__doc__)
|
|
parser.add_argument('action', choices=['prepare', 'apply'])
|
|
parser.add_argument('input', type=Path)
|
|
parser.add_argument('--config', required=True, type=Path)
|
|
parser.add_argument('--mode', required=True, choices=['target_only', 'bilingual'])
|
|
parser.add_argument('--work', type=Path, default=Path('.work/edition'))
|
|
parser.add_argument('--output', type=Path)
|
|
parser.add_argument('--cover', type=Path)
|
|
parser.add_argument('--review', type=Path)
|
|
args = parser.parse_args()
|
|
if args.action == 'prepare':
|
|
print(json.dumps(prepare(args.input, args.config, args.mode, args.work), ensure_ascii=False, indent=2))
|
|
return 0
|
|
if not all([args.output, args.cover, args.review]):
|
|
parser.error('apply needs --output, --cover and --review')
|
|
record = localize(args.input, args.output, args.config, args.mode, args.cover, args.review)
|
|
report, _, _ = audit_pair(args.input, args.output)
|
|
report['edition'] = audit_edition(args.output)
|
|
args.work.mkdir(parents=True, exist_ok=True)
|
|
(args.work/'edition-qa.json').write_text(json.dumps(report, ensure_ascii=False, indent=2))
|
|
print(json.dumps({'output': str(args.output), 'title': record['title'], 'issues': report['new_issues']}, ensure_ascii=False))
|
|
return 1 if report['new_issues'] else 0
|
|
|
|
if __name__ == '__main__': sys.exit(main())
|