#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""构建「销售活动录入 V2 新模板 Demo」单文件。"""
import pathlib, re, subprocess

ROOT = pathlib.Path('/Users/liuxinyuan/Desktop/Hermes输出-工作类')
V5 = ROOT / '工具/蛋白结构与性能工作台_v5_交互重做_20261031_V01.html'
TPL = ROOT / '资料/activity_v2_demo_template.html'
CSS = ROOT / '资料/activity_v2_demo.css'
JS = ROOT / '资料/activity_v2_demo.js'
OUT = ROOT / '工具/活动录入_v2_新模板Demo_20261031_V01.html'
CHECK = pathlib.Path('/Users/liuxinyuan/.hermes/profiles/zone-b/cache/scratch/activity_v2_demo_check.js')

v5 = V5.read_text(encoding='utf-8')
tpl = TPL.read_text(encoding='utf-8')
css = CSS.read_text(encoding='utf-8')
js = JS.read_text(encoding='utf-8')

# 品牌 CSS / header
m = re.search(r'/\* ===== bior-brand-v1.*?(?=</style>)', v5, re.S)
brand_css = m.group(0) if m else ''
start = v5.index('<div class="bior-header"')
end = v5.index('<div class="wrap">', start)
header = v5[start:end]
header = header.replace('蛋白结构与性能 · 4 酶 + 检索问答 + 突变', '销售活动录入 · 新模板 Demo')
header = header.replace('蛋白结构与性能工作台', '销售活动录入')

html = (tpl.replace('{{BRAND_CSS}}', brand_css)
           .replace('{{PAGE_CSS}}', css)
           .replace('{{HEADER}}', header)
           .replace('{{JS}}', js))
for token in ['{{BRAND_CSS}}', '{{PAGE_CSS}}', '{{HEADER}}', '{{JS}}']:
    assert token not in html, token

OUT.write_text(html, encoding='utf-8')
CHECK.write_text(js, encoding='utf-8')
r = subprocess.run(['node', '--check', str(CHECK)], capture_output=True, text=True)
print('WROTE', OUT, 'bytes', OUT.stat().st_size)
print('node', r.returncode, r.stderr[-800:])
print('brand_css', len(brand_css), 'header', len(header))
print('external script', len(re.findall(r'<script[^>]+src=', html, re.I)))
print('external link', len(re.findall(r'<link[^>]+href=', html, re.I)))
print('fetch calls', len(re.findall(r'\bfetch\s*\(', js)))
