#!/usr/bin/env python3
"""Paksa Yoast memperbarui og:image artikel TSLaw #3566 dengan menyimpan ulang artikelnya."""
import base64, importlib.util, json, re, time, urllib.request

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
spec = importlib.util.spec_from_file_location("cfg", f"{WS}/cfg_tslaw.py")
m = importlib.util.module_from_spec(spec)
spec.loader.exec_module(m)
C = m.CFG
DOM = C.get("domain", C.get("situs"))
A = base64.b64encode(f"{C['user']}:{C['pass']}".encode()).decode()
H = {"Authorization": f"Basic {A}", "User-Agent": "Mozilla/5.0", "Content-Type": "application/json"}
UA = {"User-Agent": "Mozilla/5.0"}


def og():
    t = urllib.request.urlopen(urllib.request.Request(
        f"https://{DOM}/biaya-jasa-law-firm-surabaya/?x={int(time.time())}", headers=UA),
        timeout=90).read().decode("utf-8", "replace")
    mm = re.search(r'og:image" content="([^"]+)"', t)
    return mm.group(1).split("/")[-1] if mm else "-"


print("sebelum:", og())
c = json.loads(urllib.request.urlopen(urllib.request.Request(
    f"https://{DOM}/wp-json/wp/v2/posts/3566?context=edit&_fields=content,featured_media", headers=H),
    timeout=120).read())
print("featured_media:", c.get("featured_media"))
isi = c["content"]["raw"]
# simpan ulang isi + gambar unggulan sekaligus supaya Yoast membangun ulang datanya
r = urllib.request.Request(f"https://{DOM}/wp-json/wp/v2/posts/3566",
                           data=json.dumps({"content": isi, "featured_media": c.get("featured_media")}).encode(),
                           headers=H, method="POST")
print("simpan ulang: HTTP", urllib.request.urlopen(r, timeout=180).status)
time.sleep(8)
print("sesudah:", og())
