#!/usr/bin/env python3
"""Ambil Pasal 7-9 UU 40/2007 dari PDF OJK (ekstraksi zlib + fallback string)."""
import re, urllib.request, urllib.error, zlib

UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/124 Safari/537.36"}
U = "https://www.ojk.go.id/sustainable-finance/id/peraturan/undang-undang/Documents/5.%20UU-40-2007%20Perseroan%20terbatas.pdf"
with urllib.request.urlopen(urllib.request.Request(U, headers=UA), timeout=180) as x:
    b = x.read(12000000)
print("bytes", len(b), b[:8])
open("/tmp/uu40_2007.pdf", "wb").write(b)

texts = []
for m in re.finditer(rb"stream\r?\n(.*?)\r?\nendstream", b, re.S):
    s = m.group(1)
    for dec in (lambda d: zlib.decompress(d), lambda d: zlib.decompressobj().decompress(d)):
        try:
            texts.append(dec(s).decode("latin-1"))
            break
        except Exception:
            continue
tt = " ".join(texts)
print("stream text", len(tt))
cand = tt if tt else b.decode("latin-1")

toks = re.findall(r"\((?:\\.|[^()\\])*\)", cand)
plain = " ".join(t[1:-1] for t in toks)
plain = plain.replace("\\(", "(").replace("\\)", ")").replace("\\\\", "\\")
plain = re.sub(r"\s+", " ", plain)
print("plain", len(plain), "|", plain[:200])
open("/tmp/uu40_2007.txt", "w").write(plain)

for kw in ["didirikan oleh 2", "pengesahan", "badan hukum"]:
    for m in list(re.finditer(kw, plain))[:3]:
        print(f"\n[{kw}]", plain[max(0, m.start() - 260):m.start() + 420])
