#!/usr/bin/env python3
"""Cek fakta tahap 7: teks resmi PMK 55/2026 (konsultan pajak dan kuasa wajib pajak)."""
import re, zlib, urllib.request, urllib.error

UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/124 Safari/537.36"}
URL = "https://jdih.kemenkeu.go.id/api/download/91a61950-b571-44d7-8873-7e9765a1d5ef/2026pmkeuangan055.pdf"


def pdf_text(b):
    hasil = []
    for c in re.findall(rb"stream\r?\n(.*?)endstream", b, re.S):
        try:
            d = zlib.decompress(c)
        except Exception:
            continue
        for m in re.finditer(rb"\[(.*?)\]\s*TJ", d, re.S):
            for s in re.finditer(rb"\(([^()\\]*)\)", m.group(1)):
                hasil.append(s.group(1).decode("latin-1", "replace"))
        for m in re.finditer(rb"\(([^()\\]{2,})\)", d):
            hasil.append(m.group(1).decode("latin-1", "replace"))
    return re.sub(r"\s+", " ", " ".join(hasil))


def potong(t, pat, sebelum=80, sesudah=650, 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 DITEMUKAN]", pat)


with urllib.request.urlopen(urllib.request.Request(URL, headers=UA), timeout=120) as x:
    b = x.read(4000000)
print("PDF", len(b), b[:8])
t = pdf_text(b)
print("teks", len(t))
print("AWAL:", t[:400])
for p in [r"Konsultan Pajak adalah", r"Pasal 2\b", r"Pasal 3\b", r"Pasal 4\b",
          r"uji kompetensi", r"Surat Keterangan Terdaftar", r"dicabut dan dinyatakan tidak berlaku"]:
    potong(t, p)
open("/tmp/pmk55.txt", "w").write(t)
