#!/usr/bin/env python3
"""TSLaw: inventaris artikel (judul+slug) + cek slug baru + verifikasi calon tautan internal."""
import base64, json, re, urllib.request, urllib.error, ssl, sys

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 get(path):
    h = {"Authorization": f"Basic {AUTH}", **UA}
    r = urllib.request.Request(f"https://{DOM}{path}", headers=h)
    with urllib.request.urlopen(r, timeout=120) as x:
        return x.status, json.loads(x.read())


def main():
    # 1. cek slug baru
    st, cek = get("/wp-json/wp/v2/posts?slug=pengacara-merek-dagang-surabaya&status=any&_fields=id,slug,status")
    print(f"slug pengacara-merek-dagang-surabaya -> {st} {cek}")

    # 2. inventaris
    posts = []
    for page in range(1, 6):
        st, arr = get(f"/wp-json/wp/v2/posts?per_page=100&page={page}&status=publish,draft,future&_fields=id,slug,title,status")
        if not isinstance(arr, list) or not arr:
            break
        posts += arr
        if len(arr) < 100:
            break
    print(f"total artikel: {len(posts)}")
    tu = " ".join([p["title"]["rendered"].lower() for p in posts])
    for kata in ["merek", "kekayaan intelektual", "hak cipta", "paten", "desain industri", "royalti", "lisensi", "plagiat"]:
        hit = [(p["id"], p["slug"], p["title"]["rendered"]) for p in posts
               if kata in (p["title"]["rendered"] + " " + p["slug"]).lower()]
        print(f"\n[{kata}] {len(hit)}")
        for h in hit:
            print("   ", h[0], h[1], "|", h[2][:80])
    open("/home/mantapman/.hermes/profiles/atun/workspace/tslaw_inventaris.json", "w").write(
        json.dumps(posts, ensure_ascii=False, indent=1))


if __name__ == "__main__":
    main()
