#!/usr/bin/env python3
"""Lihat di mana saja label 'Klinik DNI' muncul pada konten yang memuat nomor lama."""
import base64, html, importlib.util, json, re, time, urllib.error, urllib.request

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
spec = importlib.util.spec_from_file_location("cfg", f"{WS}/cfg_tsc.py")
m = importlib.util.module_from_spec(spec)
spec.loader.exec_module(m)
CFG = m.CFG
DOM = CFG["domain"]
AUTH = base64.b64encode(f"{CFG['user']}:{CFG['pass']}".encode()).decode()
UA = {"User-Agent": "Mozilla/5.0"}
LAMA = ["6285194936363", "6281335114324"]

daftar = json.load(open(f"{WS}/drafts/tsc_nomor_lama_di_konten.json"))
print(f"konten memuat nomor lama: {len(daftar)}")


def rest(path):
    h = {"Authorization": f"Basic {AUTH}", **UA}
    r = urllib.request.Request(f"https://{DOM}{path}", headers=h)
    for _ in range(3):
        try:
            with urllib.request.urlopen(r, timeout=180) as x:
                return json.loads(x.read())
        except urllib.error.HTTPError as e:
            return {"err": e.code}
        except Exception:
            time.sleep(4)
    return {}


hit_label = 0
contoh = []
for d in daftar:
    o = rest(f"/wp-json/wp/v2/{d['jenis']}/{d['id']}?context=edit&_fields=id,content,link")
    if not isinstance(o, dict) or "content" not in o:
        continue
    raw = o["content"]["raw"]
    for m2 in re.finditer(r"Klinik\s*DNI[^\"'<]{0,40}", raw, re.I):
        hit_label += 1
        if len(contoh) < 12:
            awal = max(0, m2.start() - 110)
            contoh.append((d["link"], re.sub(r"\s+", " ", raw[awal:m2.end() + 60])))
    if "Klinik+DNI" in raw:
        hit_label += 1

print(f"kemunculan 'Klinik DNI' pada 113 konten itu: {hit_label}\n")
for link, potong in contoh:
    print(f"  {link[:70]}")
    print(f"     ...{potong}\n")
