#!/usr/bin/env python3
"""Ambil beberapa post TSLaw via REST untuk pemilihan + backup."""
import base64, json, re, sys, time, urllib.request, importlib.util, os

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


def rest(p):
    r = urllib.request.Request(f"https://www.tslaw.id{p}", headers={"Authorization": f"Basic {AUTH}", **UA})
    for _ in range(3):
        try:
            with urllib.request.urlopen(r, timeout=180) as x:
                return json.loads(x.read())
        except Exception as e:
            print("  retry:", e); time.sleep(4)
    return {}


IDS = [int(a) for a in sys.argv[1:]] or [3179, 2944, 2931, 3177]
out = {}
for i in IDS:
    d = rest(f"/wp-json/wp/v2/posts/{i}?context=edit")
    if not isinstance(d, dict) or "id" not in d:
        print(f"#{i}: GAGAL {str(d)[:120]}"); continue
    raw = d["content"]["raw"] or ""
    teks = re.sub(r"<[^>]+>", " ", raw)
    kata = len(teks.split())
    meta = d.get("meta") or {}
    h2 = re.findall(r"<h2[^>]*>(.*?)</h2>", raw, re.S)
    h3 = re.findall(r"<h3[^>]*>(.*?)</h3>", raw, re.S)
    wa = len(re.findall(r"wa\.me", raw))
    faq = "FAQPage" in raw
    pilar = len(re.findall(r"law-firm-surabaya", raw))
    out[i] = {"slug": d["slug"], "link": d["link"], "kata_tanpa_skema": kata,
              "judul": d["title"]["raw"], "yoast_title": meta.get("_yoast_wpseo_title"),
              "yoast_desc": meta.get("_yoast_wpseo_metadesc"), "fokus": meta.get("_yoast_wpseo_focuskw"),
              "h2": [re.sub(r"<[^>]+>", "", x).strip() for x in h2],
              "h3": [re.sub(r"<[^>]+>", "", x).strip() for x in h3],
              "wa": wa, "faq_schema": faq, "tautan_pilar": pilar, "modified": d["modified"],
              "panjang_raw": len(raw)}
    print(f"#{i} /{d['slug']} | {kata} kata | H2 {len(h2)} H3 {len(h3)} | WA {wa} | FAQschema {faq} | pilar {pilar}")
    print(f"   judul : {d['title']['raw']}")
    print(f"   yoast : {meta.get('_yoast_wpseo_title')}")
    print(f"   desc  : {str(meta.get('_yoast_wpseo_metadesc'))[:150]}")
    print(f"   fokus : {meta.get('_yoast_wpseo_focuskw')} | modified {d['modified']}")
    for x in out[i]["h2"]:
        print(f"     H2> {x[:90]}")
json.dump(out, open(f"{WS}/drafts/tslaw_cek_kandidat_20261012.json", "w"), indent=1, ensure_ascii=False)
print("\n-> drafts/tslaw_cek_kandidat_20261012.json")
