#!/usr/bin/env python3
"""Cek fakta putaran 2 untuk #3566: teks persis Pasal 21 UU 18/2003, dasar surat kuasa, hak retensi, tautan 2941."""
import json, re, urllib.request, urllib.error

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


def get(u, n=200000):
    try:
        r = urllib.request.Request(u, headers=UA)
        with urllib.request.urlopen(r, timeout=70) as x:
            return x.status, x.read(n).decode("utf-8", "replace")
    except urllib.error.HTTPError as e:
        return e.code, ""
    except Exception as e:
        return type(e).__name__, ""


print("=== tautan kandidat ===")
for u in ["https://www.tslaw.id/7-hal-penting-tentang-biaya-konsultasi-hukum-yang-perlu-anda-ketahui-sebelum-ke-pengacara/",
          "https://www.tslaw.id/7-hal-penting-tentang-biaya-konsultasi-hukum-yang-perlu-anda-ketahui/",
          "https://www.tslaw.id/7-langkah-hukum-menagih-utang-piutang-secara-profesional-tanpa-main-hakim-sendiri/"]:
    print(f"  {get(u)[0]}  {u}")

print("\n=== teks Pasal 21 UU 18/2003 (pbhperadi) ===")
st, t = get("https://www.pbhperadi.or.id/undang-undang-no-18-tahun-2003/")
print("status:", st, "panjang:", len(t))
t2 = re.sub(r"<[^>]+>", " ", t)
t2 = re.sub(r"\s+", " ", t2)
i = t2.find("Pasal 21")
print(repr(t2[i:i + 600]) if i >= 0 else "Pasal 21 tidak ditemukan")

print("\n=== cari Pasal 21 & hak retensi di catatanhukum ===")
st, c = get("https://www.catatanhukum.com/DOC-PUU/UU_No_18_Tahun_2003-Advokat/index.html")
print("status:", st, "panjang:", len(c))
c2 = re.sub(r"\s+", " ", re.sub(r"<[^>]+>", " ", c))
for kw in ["Pasal 21", "retensi", "surat kuasa"]:
    j = c2.lower().find(kw.lower())
    print(f"  [{kw}] ->", repr(c2[max(0, j - 120):j + 320]) if j >= 0 else "tidak ada")

tok = json.load(open(f"{WS}/.serper_token.json"))
KEY = tok.get("api_key") or tok.get("key") or list(tok.values())[0]


def cari(q, n=4):
    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"})
    with urllib.request.urlopen(req, timeout=60) as r:
        d = json.load(r)
    return [(o.get("snippet") or "")[:300] for o in d.get("organic", [])[:n]]


print("\n=== serper: dasar hukum surat kuasa khusus beracara ===")
for s in cari("surat kuasa khusus advokat beracara Pasal 123 HIR Pasal 147 RBg syarat"):
    print("  -", s)
print("\n=== serper: hak retensi advokat dasar hukum kode etik ===")
for s in cari("hak retensi advokat dasar hukum kode etik advokat indonesia honorarium belum dibayar"):
    print("  -", s)
