#!/usr/bin/env python3
"""Lanjutan: Pasal 433 ayat (2), sanksi Pasal 45 ayat (4) UU ITE pasca UU 1/2024,
status delik aduan, tenggang pengaduan."""
import json, re, urllib.request, urllib.error

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
tok = json.load(open(f"{WS}/.serper_token.json"))
KEY = tok.get("api_key") or tok.get("key") or list(tok.values())[0]
UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/124 Safari/537.36"}


def cari(q, n=8):
    try:
        req = urllib.request.Request("https://google.serper.dev/search",
                                     data=json.dumps({"q": q, "gl": "id", "hl": "id", "num": n}).encode(),
                                     headers={"X-API-KEY": KEY, "Content-Type": "application/json"})
        return json.loads(urllib.request.urlopen(req, timeout=60).read())
    except Exception as e:
        return {"error": str(e)[:100]}


def html(u):
    try:
        with urllib.request.urlopen(urllib.request.Request(u, headers=UA), timeout=120) as x:
            b = x.read(4000000)
    except urllib.error.HTTPError as e:
        return f"HTTP {e.code}"
    except Exception as e:
        return f"ERR {str(e)[:80]}"
    t = b.decode("utf-8", "replace")
    t = re.sub(r"<(script|style)[^>]*>.*?</\1>", " ", t, flags=re.S | re.I)
    t = re.sub(r"<[^>]+>", " ", t)
    return re.sub(r"\s+", " ", t).strip()


def c(t, pat, lebar=600, n=2, sebelum=150):
    print(f"   [{pat}]")
    for m in list(re.finditer(pat, t, re.I))[:n]:
        print(f"    ...{t[max(0,m.start()-sebelum):m.start()+lebar]}...\n")


print("=== Pasal 433 ayat (2) lanjutan (hukumonline klinik)")
t = html("https://www.hukumonline.com/klinik/a/pasal-433-kuhp-baru-tentang-pencemaran-nama-baik-lt65b71f5a49552/")
c(t, r"pencemaran tertulis", 600, 2)
c(t, r"delik aduan|pengaduan", 500, 2)
c(t, r"Pasal 434", 600, 1)

for label, q in [
    ("sanksi Pasal 45 ayat (4) UU ITE setelah UU 1/2024",
     "Pasal 45 ayat (4) UU ITE setelah diubah UU 1/2024 pidana penjara paling lama denda"),
    ("Pasal 433 delik aduan",
     "\"Pasal 433\" KUHP \"delik aduan\" pengaduan pencemaran nama baik hanya dapat dituntut"),
    ("tenggang pengaduan 6 bulan KUHP baru Pasal 29",
     "Pasal 29 UU 1/2023 tenggang waktu 6 bulan pengaduan delik aduan KUHP baru"),
    ("Pasal 26 UU ITE hak penghapusan",
     "Pasal 26 UU ITE hak untuk dilupakan penghapusan informasi elektronik permintaan"),
]:
    print(f"\n=== {label}")
    d = cari(q)
    for o in d.get("organic", [])[:6]:
        print("  -", o.get("link"), "|", (o.get("snippet") or "")[:200])
