nomadweb/redmini/scripts/static_scan.py
eric 73b0513b9c Add WeChat, Douyin, and offline XHS mini-program scaffolds.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-27 12:57:18 -05:00

34 lines
896 B
Python

#!/usr/bin/env python3
"""Fail if release/ contains networking APIs (XHS miniTool rule)."""
from __future__ import annotations
import re
import sys
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
RELEASE = ROOT / "release"
BANNED = re.compile(
r"\b(fetch|XMLHttpRequest|WebSocket|navigator\.sendBeacon)\b|"
r"https?://(?!miniapp\.xiaohongshu\.com)",
re.I,
)
def main() -> int:
bad = []
for p in RELEASE.rglob("*"):
if not p.is_file() or p.suffix.lower() not in {".js", ".html", ".css"}:
continue
text = p.read_text(encoding="utf-8", errors="replace")
if BANNED.search(text):
bad.append(str(p.relative_to(ROOT)))
if bad:
print("NETWORK_FORBIDDEN:", ", ".join(bad), file=sys.stderr)
return 1
print("offline_ok")
return 0
if __name__ == "__main__":
raise SystemExit(main())