#!/usr/bin/env python3
"""Cek: PT perseorangan (UU Cipta Kerja / UU 6/2023) untuk UMK + sertifikat halal PP 39/2021."""
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=6):
    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:
        return json.load(r)


def teks(u, batas=4000000):
    try:
        with urllib.request.urlopen(urllib.request.Request(u, headers=UA), timeout=120) as x:
            b = x.read(batas)
    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).replace("&nbsp;", " ").strip()


for q in ["perseroan perseorangan kriteria usaha mikro dan kecil UU Cipta Kerja pasal 153A",
          "PP 39 tahun 2021 sertifikat halal wajib usaha mikro kecil self declare"]:
    print(f"\n=== {q}")
    for o in cari(q).get("organic", [])[:5]:
        print("  -", o.get("link"))
        print("    ", (o.get("snippet") or "")[:240])

t = teks("https://www.hukumonline.com/klinik/a/pt-perorangan-lt5f1b0b1b9c8b2")
print("\nhukumonline pt perorangan:", len(t))
if len(t) > 1500:
    for kw in ["perseorangan", "mikro"]:
        for m in list(re.finditer(kw, t, re.I))[:2]:
            print(f"  [{kw}]", t[max(0, m.start() - 220):m.start() + 340])
