#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""v4 → v5：重做蛋白三维交互（统一控制坞/任意角度/残基聚焦）。"""
import pathlib, subprocess

ROOT=pathlib.Path('/Users/liuxinyuan/Desktop/Hermes输出-工作类')
SRC=ROOT/'工具/蛋白结构与性能工作台_v4_功能与突变_20261031_V01.html'
CSS=ROOT/'资料/protein_viewer_ux.css'
JS=ROOT/'资料/protein_viewer_ux.js'
OUT=ROOT/'工具/蛋白结构与性能工作台_v5_交互重做_20261031_V01.html'
CHECK=pathlib.Path('/Users/liuxinyuan/.hermes/profiles/zone-b/cache/scratch/viewer_check.js')

html=SRC.read_text(encoding='utf-8')
css=CSS.read_text(encoding='utf-8')
js=JS.read_text(encoding='utf-8')

html=html.replace('<title>蛋白结构与性能关联工作台 · 功能与突变位点</title>',
                  '<title>蛋白结构与性能关联工作台 · 交互重做</title>')
assert html.count('</head>')==1
html=html.replace('</head>', css+'\n</head>',1)
assert html.count('</body>')==1
html=html.replace('</body>', '<script>\n'+js+'\n</script>\n</body>',1)
assert html.count('id="vx-style"')==1
assert 'data-vx="rotate"' in html
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,'MB',round(OUT.stat().st_size/1024/1024,3))
print('node',r.returncode,r.stderr[-500:])
