#!/usr/bin/env python3
"""Rekon tslaw.id 2026-10-06: keadaan terkini kandidat perbaikan (baca via REST)."""
import base64, html as htmlmod, json, os, re, sys, urllib.request
WS = "/home/mantapman/.hermes/profiles/atun/workspace"
sys.path.insert(0, WS)
from cfg_tslaw import CFG

AUTH = base64.b64encode(f"{CFG['user']}:{CFG['pass']}".encode()).decode()
HDR = {"Authorization": f"Basic {AUTH}", "User-Agent": "Mozilla/5.0"}
BASE = "https://tslaw.id/wp-json/wp/v2"
OUT = f"{WS}/tslaw_pemulihan/perbaikan_20261006"
os.makedirs(OUT, exist_ok=True)


def wc(s):
    t = htmlmod.unescape(re.sub(r"<(script|style).*?</\1>", " ", s, flags=re.S))
    return len(re.sub(r"<[^>]+>", " ", t).split())


for pid in [2823, 3057, 3065]:
    req = urllib.request.Request(f"{BASE}/posts/{pid}?context=edit", headers=HDR)
    with urllib.request.urlopen(req, timeout=90) as r:
        p = json.load(r)
    raw = p["content"]["raw"]
    m = p.get("meta") or {}
    if pid == 2823:
        open(f"{OUT}/post_{pid}_SEBELUM.html", "w").write(raw)
        json.dump(p, open(f"{OUT}/post_{pid}_SEBELUM.json", "w"), ensure_ascii=False, indent=1)
    print("=" * 78)
    print(f"#{pid} {p['slug']}")
    print(f"  status={p['status']} modified={p['modified']}")
    print(f"  H1   : {p['title']['raw']!r}")
    print(f"  seo  : {m.get('_yoast_wpseo_title')!r}")
    print(f"  fokus: {m.get('_yoast_wpseo_focuskw')!r}")
    print(f"  meta : {m.get('_yoast_wpseo_metadesc')!r}")
    print(f"  kata : {wc(raw)} | h2={len(re.findall(r'<h2', raw))} h3={len(re.findall(r'<h3', raw))}")
    wa_href = set(re.findall(r'href="([^"]*wa\.me[^"]*)', raw))
    pilar = raw.count("law-firm-surabaya")
    n_link = len(set(re.findall(r"https://www\.tslaw\.id/([a-z0-9-]+)/", raw)))
    print(f"  WA   : {raw.count('wa.me/')} -> {wa_href}")
    print(f"  FAQPage schema: {raw.count('FAQPage')}")
    print(f"  pilar law-firm-surabaya: {pilar} | tautan internal: {n_link} unik")
    print(f"  FAQ tampil (h3 tanya): {re.findall(r'<h3[^>]*>(.{0,80}?)</h3>', raw)[:12]}")
    print(f"  H2: {[re.sub(r'<[^>]+>','',x)[:70] for x in re.findall(r'<h2[^>]*>(.*?)</h2>', raw, re.S)]}")
