#!/usr/bin/env python3
"""Berapa banyak artikel tslaw.id memuat tautan mati /practice-areas/ (halaman layanan yang benar: /layanan/)."""
import base64, json, re, urllib.request

DOM = "tslaw.id"
AUTH = base64.b64encode(b"bambangbot:EFKm EYGx VQCP Y9go ncPr uM2Y").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=180) as x:
        return json.loads(x.read())


semua, hit = [], []
for page in range(1, 3):
    try:
        b = rest(f"/wp-json/wp/v2/posts?per_page=100&page={page}&status=publish,draft,future&context=edit&_fields=id,slug,status,content")
    except urllib.error.HTTPError as e:
        print(f"  (halaman {page} -> {e.code}, stop)")
        break
    if not b:
        break
    semua += b
print(f"total artikel diperiksa: {len(semua)}")
for p in semua:
    raw = p.get("content", {}).get("raw", "")
    n = len(re.findall(r'href="[^"]*practice-areas[^"]*"', raw))
    if n:
        hit.append((p["status"], p["id"], p["slug"], n))
for s, i, sl, n in sorted(hit, key=lambda x: -x[1]):
    print(f"  {s:<8} #{i:<6} /{sl[:60]}/ -> {n} tautan")
print(f"\nartikel dengan tautan practice-areas: {len(hit)}")

# apakah /layanan/ memang halaman layanan?
print("\n=== CEK /layanan/ ===")
r = urllib.request.Request("https://www.tslaw.id/layanan/", headers=UA)
try:
    with urllib.request.urlopen(r, timeout=90) as x:
        html = x.read().decode("utf-8", "ignore")
    t = re.search(r"<title>(.*?)</title>", html, re.S)
    print("  status 200 | title:", t.group(1).strip() if t else "?")
except Exception as e:
    print("  gagal:", e)
