#!/usr/bin/env python3
"""Cek fakta 18 Okt untuk #3177: kerahasiaan & imunitas advokat (UU 18/2003), bukti elektronik (UU ITE)."""
import re, urllib.request, urllib.error, json

UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/124 Safari/537.36"}


def teks(u):
    try:
        with urllib.request.urlopen(urllib.request.Request(u, headers=UA), timeout=90) as x:
            b = x.read(3000000)
    except urllib.error.HTTPError as e:
        return f"HTTP {e.code}"
    except Exception as e:
        return f"ERR {str(e)[:70]}"
    t = b.decode("utf-8", "replace")
    if b[:4] == b"%PDF":
        return "PDF"
    t = re.sub(r"<(script|style)[^>]*>.*?</\1>", " ", t, flags=re.S | re.I)
    t = re.sub(r"<[^>]+>", " ", t)
    t = re.sub(r"&nbsp;?", " ", t).replace("&amp;", "&").replace("&#8217;", "'").replace("&quot;", '"')
    return re.sub(r"\s+", " ", t).strip()


def potong(t, pat, sebelum=120, sesudah=520, maks=2):
    n = 0
    for m in re.finditer(pat, t, re.I):
        a, z = max(0, m.start() - sebelum), min(len(t), m.start() + sesudah)
        print(f"  >{t[a:z]}")
        n += 1
        if n >= maks:
            break
    if n == 0:
        print("  [TIDAK ADA]", pat)


URLS = [
    ("UU18-2003", "https://peraturan.bpk.go.id/Details/40893/uu-no-18-tahun-2003"),
    ("UU18-2003-hukumonline", "https://www.hukumonline.com/pusatdata/detail/lt4c3f5d2d3a4e5/undang-undang-nomor-18-tahun-2003"),
    ("UU-ITE", "https://peraturan.bpk.go.id/Details/39048/uu-no-11-tahun-2008"),
]
for nama, u in URLS:
    t = teks(u)
    print(f"\n=== {nama} {u}\n  {len(t)} char :: {t[:120]}")
    if len(t) < 500:
        continue
    for p in [r"merahasiakan segala sesuatu", r"tidak dapat dituntut baik secara perdata maupun pidana",
              r"alat bukti hukum yang sah", r"Pasal 5", r"Pasal 19", r"Pasal 16"]:
        potong(t, p)
