#!/usr/bin/env python3
"""Jadwalkan draf #9994 ke hari kosong pertama (2026-11-01 08:00 waktu situs)."""
import base64, json, re, sys, urllib.error, urllib.request

S = "https://studiosoft.id"
AUTH = base64.b64encode(b"bambangbot:q26r RePo BVy6 pwU2 F3z7 ouyl").decode()
PID = 9994
TARGET = "2026-11-01T08:00:00"


def rest(p, method="GET", 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(f"{S}{p}", data=body, headers=h, method=method)
    try:
        with urllib.request.urlopen(r, timeout=180) as x:
            return x.status, json.loads(x.read())
    except urllib.error.HTTPError as e:
        return e.code, e.read().decode()[:300]


st, site = rest("/wp-json/")
print("zona waktu situs:", site.get("timezone_string"), "| GMT offset:", site.get("gmt_offset"))

# cek bentrok: sudah ada artikel lain di tanggal itu?
st, ada = rest(f"/wp-json/wp/v2/posts?status=future&per_page=100&_fields=id,date,title&after=2026-10-31T23:59:59&before=2026-11-02T00:00:00")
print("artikel lain pada 2026-11-01:", [(p["id"], p["date"]) for p in ada] if isinstance(ada, list) else ada)
if isinstance(ada, list) and ada:
    print("❌ tanggal sudah terisi, hentikan")
    sys.exit(1)

st, d = rest(f"/wp-json/wp/v2/posts/{PID}", "POST",
             {"status": "future", "date": TARGET, "slug": "google-analytics-4-untuk-pemilik-bisnis"})
print("POST status:", st)
if not isinstance(d, dict):
    print("❌ gagal:", d)
    sys.exit(1)

st, back = rest(f"/wp-json/wp/v2/posts/{PID}?context=edit&_fields=id,slug,status,date,date_gmt,title,content,featured_media,categories,link,meta")
raw = back["content"]["raw"]
m = back.get("meta") or {}
print(f"baca balik: id={back['id']} status={back['status']} slug={back['slug']}")
print(f"   date={back['date']} · date_gmt={back['date_gmt']} · categories={back['categories']} · media={back['featured_media']}")
print(f"   judul={re.sub('<[^>]+>', '', back['title']['raw'])}")
patah = len([1 for x in re.findall(r"<(p|li|h2|h3)>([^<]*)</\1>", raw) if chr(10) in x[1]])
print(f"   kata={len(re.sub('<[^>]+>', ' ', raw).split())} · FAQPage={'FAQPage' in raw} · WA={'wa.me/6281935000624' in raw} · patahan={patah}")
print("   meta:", {k: str(v)[:80] for k, v in m.items() if "yoast" in k})
print("   link:", back.get("link"))
