#!/usr/bin/env python3
"""Periksa teks spam (bahasa Polandia/judi) di situs Kendangsari Hospital dan cari sumbernya."""
import base64, importlib.util, json, re, time, urllib.error, urllib.request

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
DOM = "rsia.kendangsari.com"
UA = {"User-Agent": "Mozilla/5.0"}

# 1. cek halaman depan
t = urllib.request.urlopen(urllib.request.Request(f"https://{DOM}/?c={int(time.time())}", headers=UA), timeout=90).read().decode("utf-8", "replace")
print(f"panjang HTML beranda: {len(t)}")
KATA = ["Warto sprawdzić", "RTP", "bonus", "turniej", "kasyno", "hazard", "walcy cenią", "polskim",
        "slot", "judi", "togel", "casino"]
for k in KATA:
    n = len(re.findall(re.escape(k), t, re.I))
    if n:
        print(f"   «{k}»: {n}")

for m in re.finditer(r"(Warto sprawdzić|kasyno|bonus|turniej|polskim)", t, re.I):
    awal = max(0, m.start() - 260)
    print("\n--- konteks ---")
    print(re.sub(r"\s+", " ", t[awal:m.end() + 300])[:700])
    break

# 2. sumber di WordPress
spec = importlib.util.spec_from_file_location("cfg", f"{WS}/cfg_rsia.py")
try:
    m2 = importlib.util.module_from_spec(spec)
    spec.loader.exec_module(m2)
    CFG = m2.CFG
except Exception as e:
    print(f"\n(cfg_rsia.py tidak bisa dibaca: {str(e)[:60]})")
    CFG = None

if CFG:
    AUTH = base64.b64encode(f"{CFG.get('user','')}:{CFG.get('pass','')}".encode()).decode()
    h = {"Authorization": f"Basic {AUTH}", **UA}

    def rest(path):
        r = urllib.request.Request(f"https://{DOM}{path}", headers=h)
        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:
                return {"err": e.code}
            except Exception:
                time.sleep(4)
        return {}

    print("\n=== cari di konten WordPress ===")
    for jenis in ("posts", "pages"):
        page = 1
        while True:
            d = rest(f"/wp-json/wp/v2/{jenis}?per_page=100&page={page}&status=publish&context=edit&_fields=id,slug,link,content")
            if not isinstance(d, list) or not d:
                break
            for x in d:
                raw = x["content"]["raw"]
                kena = [k for k in KATA if k.lower() in raw.lower()]
                if kena:
                    print(f"   ⚠ #{x['id']} {jenis} {kena} | {x['link'][:70]}")
            if len(d) < 100:
                break
            page += 1
            time.sleep(0.3)
