#!/usr/bin/env python3
"""Verifikasi tiap link usulan benar-benar ADA (via WP REST by slug, proxy r.jina.ai).
Lebih andal daripada cek HTTP dari luar: origin klien lambat, node check-host sering timeout
walau halaman sebenarnya 200.
"""
import json, subprocess, re, sys
from urllib.parse import urlparse

UA = "Mozilla/5.0 (X11; Linux x86_64) Chrome/124"
items = json.load(open("/home/mantapman/.hermes/profiles/atun/workspace/usulan_caption_20260930.json"))
links = list(dict.fromkeys(it["link"] for it in items))


def jina(url):
    p = subprocess.run(["curl", "-4", "-sL", "--compressed", "--max-time", "70", "-A", UA,
                        f"https://r.jina.ai/{url}"], capture_output=True, text=True, errors="replace")
    return p.stdout or ""


ok_semua = True
for link in links:
    u = urlparse(link)
    base = f"{u.scheme}://{u.netloc}"
    slug = u.path.strip("/").split("/")[-1]
    api = f"{base}/wp-json/wp/v2/posts?slug={slug}&_fields=id,date,link,title&cb={int(__import__('time').time())}"
    txt = jina(api)
    m = re.search(r"\[\{.*?\}\]", txt, re.S)
    hasil = None
    if m:
        try:
            arr = json.loads(m.group(0))
            if arr:
                hasil = arr[0]
        except Exception:
            hasil = None
    if hasil:
        judul = re.sub(r"<[^>]+>", "", (hasil.get("title") or {}).get("rendered", ""))
        print(f"✅ ADA     {link}")
        print(f"          {hasil.get('date','')[:10]} | {judul[:80]}")
    else:
        ok_semua = False
        print(f"❌ TIDAK ADA / gagal dibaca  {link}")
        print(f"          (cek manual: {api})")
print("SEMUA LINK ADA" if ok_semua else "ADA LINK YANG PERLU DIGANTI")
sys.exit(0 if ok_semua else 1)
