#!/usr/bin/env python3
"""Trigger Yoast re-index post 4147 supaya og:image ikut featured image baru."""
import base64, json, urllib.request, urllib.error

SITE = "https://www.leitsurabaya.com"
AUTH = base64.b64encode(b"bambangbot:zibd dLIV xY8x onP9 39qL hiNr").decode()


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, resp.read().decode()[:300]
    except urllib.error.HTTPError as e:
        return e.code, e.read().decode()[:300]


for payload in ({"object_ids": [4147]}, {}):
    st, body = req("POST", "/wp-json/yoast/v1/indexing/posts", payload)
    print("indexing", payload, "->", st, body[:200])
    if st == 200:
        break

st, body = req("GET", "/wp-json/wp/v2/posts/4147?context=edit&_fields=yoast_head_json")
try:
    j = json.loads(body)
    print("og_image now:", json.dumps(j.get("yoast_head_json", {}).get("og_image"), ensure_ascii=False))
except Exception:
    print("verify:", st, body[:200])
