#!/usr/bin/env python3
"""Cek langsung 8 artikel yang sempat gagal: apakah masih ada slug/tautan nama lama di isinya."""
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"}
LAMA = json.load(open(f"{WS}/drafts/tsc_slug_lama.json"))
ID = [8855, 8852, 8831, 1939, 1936, 1924, 1647, 1644]
peta = {}


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


for x in LAMA:
    o = rest(f"/wp-json/wp/v2/posts/{x['id']}?_fields=id,slug")
    if isinstance(o, dict) and o.get("slug") and o["slug"] != x["slug"]:
        peta[x["slug"]] = o["slug"]
    time.sleep(0.4)
print(f"peta slug: {len(peta)}")

for pid in ID:
    o = rest(f"/wp-json/wp/v2/posts/{pid}?context=edit&_fields=id,content,link,slug")
    if not isinstance(o, dict) or "content" not in o:
        print(f"  #{pid} ❌ {str(o)[:60]}")
        continue
    raw = o["content"]["raw"]
    kena = sorted({l for l in peta if l in raw})
    print(f"  #{pid} sisa tautan nama lama: {len(kena)}")
    for l in kena[:3]:
        print(f"       /{l[:70]}")
    time.sleep(0.5)
