File size: 2,977 Bytes
24a2ddf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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.")