# -*- coding: utf-8 -*- """ 按 manual/<系列>/ 实际 png 数量重写 meta 的 attachments(多页附图)。 用法: PYTHONUTF8=1 python update-pending-meta-attach.py """ import json, os, glob CAT = r'D:/开发/OnebotCatalog/onebot-data/catalog' SERIES = ['ULA','ULB','ULL','ULM','ULO','ULP','ULR','ULT','ULX','ULY','ULZ', 'USP','USL','USR','USS','USSL', 'UAGP','LAGP', 'LAE'] for s in SERIES: mp = os.path.join(CAT, 'series', s + '.meta.json') if not os.path.exists(mp): print(f'[{s}] meta 不存在,跳过') continue meta = json.load(open(mp, encoding='utf-8')) d = os.path.join(CAT, 'manual', s) pngs = sorted(glob.glob(os.path.join(d, 'p*.png'))) if not pngs: print(f'[{s}] 无 png,保留原 attachments') continue atts = [{"kind": "manual", "lang": "", "source": f"manual/{s}/{os.path.basename(p)}", "model": None} for p in pngs] pdf = os.path.join(d, s + '_manual.pdf') if os.path.exists(pdf): atts.append({"kind": "datasheet", "lang": "", "source": f"manual/{s}/{s}_manual.pdf", "model": None}) meta['attachments'] = atts with open(mp, 'w', encoding='utf-8') as fp: json.dump(meta, fp, ensure_ascii=False, indent=1) print(f'[{s}] {len(pngs)} 页附图' + (' + datasheet' if os.path.exists(pdf) else '')) # catalog.json 的 GRP 分类:UGP 无 X 盘数据,保留 demo —— 提示用户 print('\n注: GRP/UGP 无 X 盘真实数模,保留原 demo 数据')