# -*- coding: utf-8 -*-
"""把 WPS 批量转出的 PDF 按 manifest 放回源文件旁边（同目录、同主名 + .pdf）。
   用法：python3 place_pdfs.py [--dry]
   规矩：源目录已有同名 .pdf（卷商自带）→ 不覆盖，记入 skipped；转出的 PDF 用 copy 不用 move（块目录留作核对）。"""
import json, os, shutil, sys
HERE = os.path.dirname(os.path.abspath(__file__))
dry = '--dry' in sys.argv
man = json.load(open(os.path.join(HERE, 'manifest.json'), encoding='utf-8'))
placed = skipped = missing = 0; miss_list = []
for m in man:
    pdf = os.path.join(HERE, m['chunk'], os.path.splitext(m['name'])[0] + '.pdf')
    if not os.path.exists(pdf):
        missing += 1; miss_list.append(m['name']); continue
    dst = os.path.splitext(m['src'])[0] + '.pdf'
    if os.path.exists(dst):
        skipped += 1; continue
    if not dry:
        shutil.copyfile(pdf, dst)
    placed += 1
print('放回 %d | 源旁已有 pdf 跳过 %d | 转出缺失 %d %s' % (placed, skipped, missing, miss_list[:10]))
json.dump({'placed': placed, 'skipped': skipped, 'missing': miss_list},
          open(os.path.join(HERE, 'place_report.json'), 'w', encoding='utf-8'), ensure_ascii=False, indent=1)
