#!/usr/bin/env python3
"""Rincian teks terlihat yang menyebut Klinik DNI + status URL media dari domain lama."""
import base64, 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"}
POLA = re.compile(r"klinik[\s_-]*dni(?:\s*-?\s*(?:krian|sidoarjo))?", re.I)

daftar = json.load(open(f"{WS}/drafts/tsc_daftar_klinik_dni.json"))


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 {}


print("=== teks terlihat yang menyebut Klinik DNI ===")
for b in daftar:
    if "teks terlihat" not in b["temuan"] and "url lama (data media/tombol)" not in b["temuan"]:
        continue
    o = rest(f"/wp-json/wp/v2/{b['jenis']}/{b['id']}?context=edit&_fields=id,content,link")
    if not isinstance(o, dict) or "content" not in o:
        continue
    isi = o["content"]["raw"]
    print(f"\n■ {b['judul'][:70]}\n  {b['link']}")
    # teks terlihat (tanpa tag & tanpa JSON di dalam atribut)
    bersih = re.sub(r"<[^>]+>", " ", isi)
    for mc in list(POLA.finditer(bersih))[:8]:
        awal = max(0, mc.start() - 120)
        potong = re.sub(r"\s+", " ", bersih[awal:mc.end() + 80]).strip()
        print(f"    “…{potong}…”")
    # url gambar domain lama
    urls = sorted(set(re.findall(r"klinikdni(?:sidoarjo|krian)\.com[^\s\"'<>\\]*", isi, re.I)))
    if urls:
        print(f"    URL domain lama: {len(urls)}")
        for u in urls[:4]:
            print(f"      https://{u[:80]}")
