#!/usr/bin/env python3
"""TSLaw: inventaris artikel untuk tautan internal + cek slug bebas."""
import base64, json, sys, urllib.request, urllib.error

DOM = "tslaw.id"
USER, PASS = "bambangbot", "EFKm EYGx VQCP Y9go ncPr uM2Y"
AUTH = base64.b64encode(f"{USER}:{PASS}".encode()).decode()
UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/124 Safari/537.36"}


def rest(path):
    r = urllib.request.Request(f"https://{DOM}{path}", headers={"Authorization": f"Basic {AUTH}", **UA})
    with urllib.request.urlopen(r, timeout=120) as x:
        return json.loads(x.read())


semua = []
for page in range(1, 12):
    try:
        b = rest(f"/wp-json/wp/v2/posts?per_page=100&page={page}&status=publish,draft,future&_fields=id,slug,status,title,link")
    except urllib.error.HTTPError as e:
        if e.code == 400:
            break
        raise
    if not b:
        break
    semua += b
print(f"total artikel (publish+draft+future): {len(semua)}")

kata = ["legalitas", "nib", "pirt", "bpom", "halal", "izin", "umkm", "usaha", "pt-", "cv-", "pendirian",
        "oss", "merek", "sertifikat", "badan-usaha", "perizinan", "niaga"]
print("\n=== KANDIDAT TAUTAN INTERNAL ===")
for p in semua:
    s = p["slug"]
    if any(k in s for k in kata):
        t = p["title"]["rendered"]
        print(f"  {p['status']:<8} #{p['id']:<6} /{s}/  | {t[:80]}")

print("\n=== CEK SLUG TARGET ===")
for sl in ["konsultan-legalitas-usaha-surabaya", "legalitas-usaha-surabaya", "cara-mengurus-nib", "syarat-pirt"]:
    found = [p for p in semua if p["slug"].startswith(sl)]
    print(f"  {sl:<40} {'ADA -> ' + str([(p['id'], p['slug'], p['status']) for p in found]) if found else 'BEBAS'}")

print("\n=== DRAFT/ANTREAN TERBARU ===")
for p in sorted(semua, key=lambda x: -x["id"])[:12]:
    print(f"  {p['status']:<8} #{p['id']:<6} /{p['slug']}/ | {p['title']['rendered'][:70]}")
