#!/usr/bin/env python3
"""Langkah 3-5 ulang: set alt_text media 4216 + featured_media post 4147 (dengan Content-Type JSON)."""
import base64, json, sys, urllib.request, urllib.error

SITE = "https://www.leitsurabaya.com"
AUTH = base64.b64encode(b"bambangbot:zibd dLIV xY8x onP9 39qL hiNr").decode()
MID = 4216
POST_ID = 4147
ALT = "Sekelompok anak membaca buku bersama saat belajar bahasa Inggris"


def req(method, path, data=None):
    h = {"Authorization": f"Basic {AUTH}", "User-Agent": "Mozilla/5.0"}
    body = None
    if data is not None:
        body = json.dumps(data).encode()
        h["Content-Type"] = "application/json"
    r = urllib.request.Request(SITE + path, data=body, headers=h, method=method)
    try:
        with urllib.request.urlopen(r, timeout=120) as resp:
            return resp.status, json.loads(resp.read())
    except urllib.error.HTTPError as e:
        return e.code, e.read().decode()[:400]


st, res = req("POST", f"/wp-json/wp/v2/media/{MID}", {"alt_text": ALT, "title": "Bahasa Inggris untuk Anak (Pexels 10638213)"})
print("alt:", st, repr(res.get("alt_text")) if isinstance(res, dict) else res)

st, res = req("POST", f"/wp-json/wp/v2/posts/{POST_ID}", {"featured_media": MID})
print("featured:", st, res.get("featured_media") if isinstance(res, dict) else res)

st, res = req("GET", f"/wp-json/wp/v2/posts/{POST_ID}?_fields=id,link,featured_media")
print("verify post:", st, res)
st, res = req("GET", f"/wp-json/wp/v2/media/{MID}?_fields=id,alt_text,source_url,media_details")
print("verify media:", st, res.get("source_url"), res.get("media_details", {}).get("width"), "x",
      res.get("media_details", {}).get("height"), "| alt:", repr(res.get("alt_text")))
