#!/usr/bin/env python3
"""Cek fakta tahap 8: ringkasan PMK 55/2026 dari dua sumber (muc, ptgasi) + halaman bpk."""
import re, urllib.request, urllib.error

UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/124 Safari/537.36"}


def teks(u):
    try:
        with urllib.request.urlopen(urllib.request.Request(u, headers=UA), timeout=90) as x:
            b = x.read(2000000)
    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)
    t = re.sub(r"&nbsp;?", " ", t).replace("&amp;", "&").replace("&#8217;", "'")
    return re.sub(r"\s+", " ", t).strip()


def potong(t, pat, sebelum=100, sesudah=500, maks=3):
    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]", pat)


for u in ["https://muc.co.id/id/article/pmk-552026-atur-lebih-detail-syarat-konsultan-pajak-berikut-perinciannya",
          "https://www.ptgasi.co.id/konsultan-pajak-dan-pihak-lain-yang-bertindak-sebagai-kuasa-wajib-pajak-berdasarkan-pmk-nomor-55-tahun-2026/"]:
    t = teks(u)
    print(f"\n=== {u}\n  {len(t)} char")
    for p in [r"24 Agustus 2026", r"mencabut", r"uji kompetensi", r"izin", r"PPL", r"kuasa"]:
        potong(t, p)
