#!/usr/bin/env python3
"""Tarik semua post tslaw.id (judul+slug+status) untuk memilih tautan internal."""
import base64, json, urllib.request, urllib.error, 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"}

out = []
page = 1
while True:
    u = (f"https://{DOM}/wp-json/wp/v2/posts?per_page=100&page={page}&status=publish,draft,future,private"
         f"&orderby=date&order=desc&_fields=id,slug,status,date,link,title")
    r = urllib.request.Request(u, headers={"Authorization": f"Basic {AUTH}", **UA})
    try:
        with urllib.request.urlopen(r, timeout=120) as x:
            d = json.loads(x.read())
    except urllib.error.HTTPError as e:
        print("HTTP", e.code, e.read().decode()[:200])
        break
    if not d:
        break
    out += d
    if len(d) < 100:
        break
    page += 1

json.dump(out, open("/home/mantapman/.hermes/profiles/atun/workspace/_tslaw_semua_post.json", "w"),
          ensure_ascii=False, indent=0)
print(f"total post: {len(out)}")
pub = [p for p in out if p["status"] == "publish"]
print(f"publish: {len(pub)} | draft: {len([p for p in out if p['status']=='draft'])}")

kata = sys.argv[1:] or ["pidana", "penipuan", "polisi", "lapor", "tipu", "kriminal", "hukum"]
print("\n== kandidat tautan internal ==")
for p in out:
    t = p["title"]["rendered"].lower() + " " + p["slug"]
    if any(k in t for k in kata):
        print(f"  [{p['status'][:4]}] {p['slug']}  ({p['id']})  {p['title']['rendered'][:80]}")
