#!/usr/bin/env python3
"""Periksa teks spam judi di isi beranda TSC (hanya membaca)."""
import base64, importlib.util, json, re, time, urllib.error, urllib.request

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
spec = importlib.util.spec_from_file_location("cfg", f"{WS}/cfg_tsc.py")
m = importlib.util.module_from_spec(spec)
spec.loader.exec_module(m)
CFG = m.CFG
AUTH = base64.b64encode(f"{CFG['user']}:{CFG['pass']}".encode()).decode()
h = {"Authorization": f"Basic {AUTH}", "User-Agent": "Mozilla/5.0"}


def get(path, login=True):
    head = dict(h) if login else {"User-Agent": "Mozilla/5.0"}
    r = urllib.request.Request(f"https://{CFG['domain']}{path}", headers=head)
    for _ in range(3):
        try:
            with urllib.request.urlopen(r, timeout=120) as x:
                return json.loads(x.read())
        except urllib.error.HTTPError as e:
            if e.code in (403, 404, 429):
                time.sleep(4)
                continue
            return {"err": e.code}
        except Exception:
            time.sleep(4)
    return {}


st = get("/wp-json/wp/v2/settings")
print("show_on_front:", st.get("show_on_front") if isinstance(st, dict) else "?", "| page_on_front:",
      st.get("page_on_front") if isinstance(st, dict) else "?")

PID = 409
o = get(f"/wp-json/wp/v2/pages/{PID}?context=edit&_fields=id,slug,content,title")
if not isinstance(o, dict) or "content" not in o:
    print("gagal membaca beranda:", str(o)[:120])
    raise SystemExit(1)
raw = o["content"]["raw"]
print(f"beranda #{PID} slug={o['slug']} panjang isi: {len(raw)} char")

for k in ["casino", "slot", "moonwin", "jeetcity", "winorio", "judi", "togel", "bonus", "XXXX"]:
    n = len(re.findall(re.escape(k), raw, re.I))
    if n:
        print(f"   «{k}»: {n}")

for m2 in re.finditer(r"(casino|moonwin|jeetcity|winorio|slot)", raw, re.I):
    awal = max(0, m2.start() - 300)
    print("\n--- konteks spam pada isi beranda ---")
    print(re.sub(r"\s+", " ", raw[awal:m2.end() + 300])[:800])
    break

luar = re.findall(r'href="(https?://(?!www\.theskincodeclinic|theskincodeclinic)[^"]+)"', raw)
print(f"\ntautan keluar dari isi beranda: {len(luar)}")
for u in sorted(set(luar))[:12]:
    print("   ", u[:110])
