api-server / make /_clean.py
XWX-AI's picture
fix(widget): DOCX图表fallback成数据表格根因修复 — widget渲染浏览器池+CDP有限超时+渲染硬超时+队列超时取消+BrowserPool补位bug+body-parser JSON兜底, bump v2.1.11
24a2ddf
Raw
History Blame Contribute Delete
2.98 kB
import re
with open('D:/workAI/OpenCode/WorkSpace/backend-service/server.js', 'r', encoding='utf-8') as f:
content = f.read()
# Clean _renderFullHtml: replace entire debug-heavy section with clean version
# Find from setViewport to dataUrl assignment
pattern = r"( await page\.setViewport\(\{ width: 800, height: 500 \}\);).*?(const dataUrl = `data:image/png;base64,\$\{screenshot\.toString\('base64'\)\}`;)"
replacement = r""" await page.setViewport({ width: 800, height: 500 });
await page.setContent(htmlContent, { waitUntil: 'networkidle0', timeout: 15000 });
const rendered = await page.waitForFunction(
() => window._widgetRendered === true,
{ timeout: renderTimeout }
).catch(() => null);
if (!rendered) {
console.log(`[WIDGET] _renderFullHtml timeout after ${renderTimeout}ms, trying screenshot anyway`);
await new Promise(r => setTimeout(r, 1000));
}
const container = await page.$('#widget-container');
let screenshot;
if (container) {
screenshot = await container.screenshot({ type: 'png', omitBackground: false });
} else {
screenshot = await page.screenshot({ type: 'png', fullPage: true, omitBackground: false });
}
const dataUrl = `data:image/png;base64,${screenshot.toString('base64')}`;"""
content = re.sub(pattern, replacement, content, flags=re.DOTALL)
print("CLEANED: _renderFullHtml debug blocks")
# Remove debugId from _renderFullHtml call
content = content.replace(
"return this._renderFullHtml(html, chartTitle, 8000, chartType, debugId);",
"return this._renderFullHtml(html, chartTitle, 8000, chartType);"
)
print("CLEANED: Removed debugId from _renderFullHtml call")
# Remove debugId from method signature
content = content.replace(
"async _renderFullHtml(htmlContent, title, renderTimeout, chartType, debugId)",
"async _renderFullHtml(htmlContent, title, renderTimeout, chartType)"
)
print("CLEANED: Removed debugId from _renderFullHtml signature")
# Remove redundant fs require in renderChatGPTChart (already partially cleaned)
old_debug = """ const html = this.buildChatGPTChartHtml(chartType, series, data, xKey, nameKey, valueKey, formattedData, axes, chartTitle, chartDesc);
// DEBUG: Write HTML to disk for inspection
const fs = require('fs');
const debugId = `${chartType}-${Date.now()}`;
fs.writeFileSync(`/tmp/chart-debug-${debugId}.html`, html);
// DO NOT use renderWidgetPuppeteer"""
if old_debug in content:
content = content.replace(old_debug,
" const html = this.buildChatGPTChartHtml(chartType, series, data, xKey, nameKey, valueKey, formattedData, axes, chartTitle, chartDesc);")
print("CLEANED: Removed /tmp debug HTML write")
else:
print("INFO: /tmp debug write already cleaned or not found")
with open('D:/workAI/OpenCode/WorkSpace/backend-service/server.js', 'w', encoding='utf-8') as f:
f.write(content)
print("Done.")