#!/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())