#!/usr/bin/env python3
"""Apa yang dilakukan UU 1/2026 (Penyesuaian Pidana) terhadap UU ITE / Pasal 27A."""
import json, re, urllib.request, urllib.error, zlib

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 unduh(u):
    with urllib.request.urlopen(urllib.request.Request(u, headers=UA), timeout=180) as x:
        return x.read()


def pdf_teks(b):
    out = []
    for m in re.finditer(rb"stream\r?\n(.*?)endstream", b, re.S):
        try:
            d = zlib.decompress(m.group(1))
        except Exception:
            continue
        if b"Tj" not in d and b"TJ" not in d:
            continue
        teks = []
        for mm in re.finditer(rb"\((?:\\.|[^\\()])*\)|<[0-9A-Fa-f\s]+>", d):
            g = mm.group(0)
            if g.startswith(b"("):
                teks.append(re.sub(rb"\\([()\\])", rb"\1", g[1:-1]).decode("latin-1", "replace"))
            else:
                h = re.sub(rb"\s", b"", g[1:-1])
                try:
                    teks.append(bytes.fromhex(h.decode()).decode("latin-1", "replace"))
                except Exception:
                    pass
        out.append(" ".join(teks))
    return re.sub(r"\s+", " ", "\n".join(out))


print("=== UU 1/2026 PDF peraturan.go.id")
b = unduh("https://peraturan.go.id/files/uu-no-1-tahun-2026.pdf")
print("  bytes", len(b))
t = pdf_teks(b)
print("  teks", len(t))
print("  awal:", t[:400])
for pat in [r"Informasi dan Transaksi Elektronik", r"Pasal 27A", r"Pasal 45", r"dicabut"]:
    print(f"\n  [{pat}]")
    for m in list(re.finditer(pat, t))[:4]:
        print(f"    ...{t[max(0,m.start()-250):m.start()+600]}...")

print("\n=== serper: UU 1/2026 dan UU ITE pencemaran")
req = urllib.request.Request("https://google.serper.dev/search",
                             data=json.dumps({"q": "UU 1 tahun 2026 penyesuaian pidana UU ITE pasal 27A pasal 45 dihapus berlaku KUHP",
                                              "gl": "id", "hl": "id", "num": 8}).encode(),
                             headers={"X-API-KEY": KEY, "Content-Type": "application/json"})
d = json.loads(urllib.request.urlopen(req, timeout=60).read())
for o in d.get("organic", [])[:8]:
    print("  -", o.get("link"), "|", (o.get("snippet") or "")[:220])
