#!/usr/bin/env python3
"""Cek status/slug artikel carousel 15 Okt (maklon) di studiosoft.id via WP REST auth (context=edit)."""
import base64, json, urllib.request, urllib.error, time

S = "https://studiosoft.id"
AUTH = base64.b64encode(b"bambangbot:q26r RePo BVy6 pwU2 F3z7 ouyl").decode()
SLUG = "marketing-maklon-minuman"


def api(path):
    h = {"Authorization": f"Basic {AUTH}", "User-Agent": "Mozilla/5.0"}
    r = urllib.request.Request(S + path, headers=h, method="GET")
    try:
        with urllib.request.urlopen(r, timeout=120) as x:
            return x.status, json.loads(x.read())
    except urllib.error.HTTPError as e:
        return e.code, e.read().decode()[:200]
    except Exception as e:
        return 0, str(e)


st, d = api(f"/wp-json/wp/v2/posts?slug={SLUG}&status=any&context=edit&_fields=id,slug,status,date,link,title")
print("http:", st)
if isinstance(d, list):
    if not d:
        print("!! TIDAK ADA artikel dengan slug itu")
    for p in d:
        print(f"  #{p.get('id')} status={p.get('status')} slug={p.get('slug')} date={p.get('date')}")
        print("  link:", p.get("link"))
        t = (p.get("title") or {})
        print("  title:", t.get("raw") or t.get("rendered"))
else:
    print(d)

print()
print("--- 5 artikel terbaru (status any) ---")
st, d = api("/wp-json/wp/v2/posts?per_page=5&status=any&context=edit&_fields=id,slug,status,date")
if isinstance(d, list):
    for p in d:
        print(f"  #{p.get('id')} {p.get('status'):8s} {p.get('date')} {p.get('slug')}")
else:
    print(st, d)

print()
print("--- pastikan publish via cache-buster ---")
ts = int(time.time())
st, d = api(f"/wp-json/wp/v2/posts?slug={SLUG}&status=any&context=edit&_fields=id,status,link&cb={ts}")
print("http:", st, d if not isinstance(d, list) else [x.get("status") for x in d])
