GraphResearcher / scripts /phase40c_fix_js_regex_error.py
yugbirla's picture
Fix final UI JavaScript regex error
8e45983
Raw
History Blame Contribute Delete
1.06 kB
from pathlib import Path
path = Path("app/product/final_product_ui.py")
text = path.read_text(encoding="utf-8-sig")
text = text.replace("\ufeff", "")
# These are inside a Python triple-quoted HTML string.
# So JS regex \n must be written as \\n in the Python source,
# otherwise Python turns it into a real newline and breaks browser JS.
replacements = {
r"[^|\n]*page": r"[^|\\n]*page",
r"/\n{3,}/g": r"/\\n{3,}/g",
r'"\n\n"': r'"\\n\\n"',
r"split(/\n+/)": r"split(/\\n+/)",
r"[ \t]+": r"[ \\t]+",
}
for old, new in replacements.items():
if old in text:
text = text.replace(old, new)
# Safety: if regex line is still risky, replace that exact line with a RegExp constructor.
bad_line = r'text = text.replace(/\s+\|\s*[^|\n]*page\s*\d+/gi, "");'
safe_line = r'text = text.replace(new RegExp("\\s+\\|\\s*[^|\\n]*page\\s*\\d+", "gi"), "");'
if bad_line in text:
text = text.replace(bad_line, safe_line)
path.write_text(text, encoding="utf-8")
print("Fixed broken JavaScript regex escapes in final_product_ui.py")