v2.0: 4 分类真实数据替换 + 手册彩色重做 + 网页版改版
数据 (定位销/勾销缸/翻转缸/电缸 → Univer 真实数模)
- 新增 19 系列 1124 型号 (PIN 303 / HOK 73 / ROT 741 / ELEC 9)
- 命名规则取自官方图册 CODIFICATION KEY (pdftotext 提取), 非推测
- 解析用「官方值域校验 + 左对齐 DFS 填空」, 可处理省略空位的型号
- 参数组合唯一性门禁: 1124 型号全部通过 (避免选型静默错配)
- 占位/测试文件 (如 USP50J_0___K0 销径为空) 在解析阶段丢弃
- catalog.json 分类系列表同步; crossref 失效引用清理
手册页
- 全部 42 系列改为彩色 (此前脚本误写死 csGRAY 转灰度), 346 页
- 修复 UCBT 附图只有 1 页 (筛选条件写死 UCBT40 且漏 CLAMPING ARMS)
- gen-pending-series.py 改为扫描 manual 目录自动生成附件清单,
避免重跑脚本把多页附件覆盖回单页
网页版
- 首页改为系列缩略图网格 (40 张: 27 张真实产品图 + 13 张占位图),
按大类分组; 图放 web/series/<系列码>.webp, 覆盖同名文件即可替换
- 左侧树改手风琴 (默认收起, 一次展开一个), 父级带 SVG 图标,
悬停放大动画, 按钮间距随高度均匀分布; 可收起为图标窄条
- 修复分隔条被拖出容器后无法找回 (上限改为容器感知 + resize 重夹取
+ 双击复位); 同时阻止图片原生拖拽
- 购物车打包改取 .step.gz 副档 (传输量降至约 1/4.5), 无副档自动回退
- 修复搜索到型号后点结果内容区空白 (switchTab('dim') 已失效)
- OpcPackage 超大包 (>1.5GB) 改走临时文件, 绕过 MemoryStream 2GB 上限
工具
- gen-pending-series/manual, copy-pending-step, gen-step-gz,
gen-series-thumbs, scan-pending-series 等 11 个脚本
Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
35
onebot-data/tools/update-pending-meta-attach.py
Normal file
35
onebot-data/tools/update-pending-meta-attach.py
Normal file
@@ -0,0 +1,35 @@
|
||||
# -*- 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 数据')
|
||||
Reference in New Issue
Block a user