#!/usr/bin/env python3
"""Audit tombol WhatsApp di artikel TSLaw: mana yang sudah ada, mana yang belum, dan bentuk baku tombolnya."""
import base64, importlib.util, json, re, urllib.request

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
spec = importlib.util.spec_from_file_location("cfg", f"{WS}/cfg_tslaw.py")
m = importlib.util.module_from_spec(spec)
spec.loader.exec_module(m)
C = m.CFG
DOM = C.get("domain", C.get("situs"))
A = base64.b64encode(f"{C['user']}:{C['pass']}".encode()).decode()
H = {"Authorization": f"Basic {A}", "User-Agent": "Mozilla/5.0"}
NOMOR = "6281909222026"

x = json.loads(urllib.request.urlopen(urllib.request.Request(
    f"https://{DOM}/wp-json/wp/v2/posts/3566?context=edit&_fields=content", headers=H), timeout=120).read())
isi = x["content"]["raw"]
print("=== bentuk tombol di #3566 ===")
for mo in re.finditer(r".{0,220}wa\.me/6281909222026.{0,220}", isi, re.S):
    print("   " + re.sub(r"\s+", " ", mo.group(0))[:440] + "\n")

print("=== audit seluruh artikel ===")
sudah, belum = [], []
hal = 1
while hal <= 3:
    d = json.loads(urllib.request.urlopen(urllib.request.Request(
        f"https://{DOM}/wp-json/wp/v2/posts?per_page=100&page={hal}&status=publish,pending,draft,future"
        "&context=edit&_fields=id,slug,status,content,link", headers=H), timeout=180).read())
    if not isinstance(d, list) or not d:
        break
    for p in d:
        punya = NOMOR in p["content"]["raw"]
        (sudah if punya else belum).append((p["id"], p["slug"], p["status"], p["link"]))
    if len(d) < 100:
        break
    hal += 1

print(f"   total diperiksa: {len(sudah) + len(belum)} · sudah ada tombol: {len(sudah)} · belum: {len(belum)}")
print("\n   BELUM ada tombol WA di isi artikel:")
for pid, slug, st, link in belum:
    print(f"      #{pid:<5} [{st:<7}] {slug[:66]}")

json.dump({"sudah": sudah, "belum": belum},
          open(f"{WS}/drafts/tslaw_audit_wa.json", "w"), ensure_ascii=False, indent=1)
print("\n   → drafts/tslaw_audit_wa.json")
