#!/usr/bin/env python3
"""Baca Perma 1/2016 (PDF MA) - normalisasi tanpa spasi, ambil pasal kunci."""
import re, urllib.request, zlib

UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/124 Safari/537.36"}
b = urllib.request.urlopen(urllib.request.Request("https://www.mahkamahagung.go.id/media/8757", headers=UA),
                           timeout=120).read()
out = []
for m in re.finditer(rb"stream\r?\n(.*?)endstream", b, re.S):
    try:
        d = zlib.decompress(m.group(1))
    except Exception:
        continue
    pot = b""
    for tm in re.finditer(rb"\((?:\\.|[^\\()])*\)", d):
        pot += tm.group(0)[1:-1] + b" "
    out.append(pot.decode("latin-1", "replace"))
t = re.sub(r"\s+", " ", " ".join(out))
t = t.replace("id-ID", " ")
t = re.sub(r"\s+", " ", t)
# versi rapat: buang spasi untuk mencari frasa yang terpecah
rapat = re.sub(r"[ ]+", "", t)


def cari_rapat(frasa, lebar=700):
    f = re.sub(r"[ ]+", "", frasa)
    for m in list(re.finditer(re.escape(f), rapat, re.I))[:2]:
        # petakan indeks rapat ke teks asli kira-kira: cetak potongan rapat
        print(f"\n[{frasa}] ...{rapat[max(0,m.start()-350):m.start()+lebar]}...")


for f in ["Mediasiharusdiselesaikanpalinglama30(tigapuluh)hari",
          "jangka waktu Mediasi paling lama 30",
          "30 (tiga puluh) hari sejak penetapan",
          "perpanjangan paling lama 30 (tiga puluh) hari",
          "Mediasi wajib di tempuh",
          "Pasal 4",
          "Pasal 13",
          "Pasal 29",
          "Kesepakatan Perdamaian",
          "akta perdamaian",
          "Biaya Mediasi",
          "mediator nonhakim",
          "sertifikat mediator"]:
    cari_rapat(f, 600)
