#!/usr/bin/env python3
"""TSLaw: DARURAT — kenapa /practice-areas/ jadi 404? Cek daftar halaman dan arsipnya."""
import base64, html, json, re, time, urllib.request, urllib.error

DOM = "tslaw.id"
AUTH = base64.b64encode(b"bambangbot:EFKm EYGx VQCP Y9go ncPr uM2Y").decode()
UA = {"User-Agent": "Mozilla/5.0"}


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


print("=== semua halaman (status apa pun) ===")
for status in ("publish", "draft", "pending", "private", "trash", "future"):
    d = rest(f"/wp-json/wp/v2/pages?per_page=100&status={status}&_fields=id,slug,link,title,status")
    if isinstance(d, list) and d:
        print(f"\n  [{status}] {len(d)} halaman")
        for p in d:
            print(f"     #{p['id']:>5} {p['link'].replace('https://www.tslaw.id', '')[:34]:<36} {html.unescape(p['title']['rendered'])[:30]}")

print("\n=== halaman id 12 (Layanan) ===")
d = rest("/wp-json/wp/v2/pages/12?_fields=id,slug,link,status,title,modified")
print("  ", {k: (html.unescape(str(v)[:70])) for k, v in d.items()} if isinstance(d, dict) else d)

print("\n=== uji URL ===")
for u in ("/practice-areas/", "/layanan/", "/practice-areas", "/?page_id=12", "/?p=12"):
    try:
        r = urllib.request.urlopen(urllib.request.Request(f"https://www.tslaw.id{u}", headers=UA), timeout=45)
        h = r.read().decode("utf-8", "replace")
        t = re.search(r"<title>(.*?)</title>", h, re.S)
        print(f"  {r.status} | {u:<18} {t.group(1)[:48] if t else ''}")
    except urllib.error.HTTPError as e:
        print(f"  {e.code} | {u}")
    except Exception as e:
        print(f"  ERR | {u} {str(e)[:40]}")

print("\n=== menu & tautan internal yang menunjuk /practice-areas/ ===")
h = urllib.request.urlopen(urllib.request.Request("https://www.tslaw.id/", headers=UA), timeout=90).read().decode("utf-8", "replace")
print("   di beranda:", h.count("/practice-areas/"), "kemunculan")
print("   tautan menu:", re.findall(r'<a[^>]+href="([^"]*practice-areas[^"]*)"[^>]*>([^<]{0,30})', h)[:5])
