#!/usr/bin/env python3
"""DARURAT TSLaw: daftar revisi halaman 833 untuk memulihkan konten beranda yang kosong."""
import base64, json, time, urllib.request, urllib.error

DOM = "tslaw.id"
AUTH = base64.b64encode(b"bambangbot:EFKm EYGx VQCP Y9go ncPr uM2Y").decode()


def wp(path):
    r = urllib.request.Request(f"https://{DOM}{path}", headers={"Authorization": f"Basic {AUTH}", "User-Agent": "Mozilla/5.0"})
    for _ in range(3):
        try:
            with urllib.request.urlopen(r, timeout=150) as x:
                return x.status, json.loads(x.read()), dict(x.headers)
        except urllib.error.HTTPError as e:
            return e.code, e.read().decode()[:250], {}
        except Exception:
            time.sleep(4)
    return 0, "gagal", {}


st, rev, h = wp("/wp-json/wp/v2/pages/833/revisions?per_page=20&_fields=id,date,modified,title")
print(f"=== revisi halaman 833 (HTTP {st}, total {h.get('X-WP-Total')}) ===")
if isinstance(rev, list):
    for r in rev:
        print(f"   #{r['id']:>7} {r.get('modified') or r.get('date')}  {str(r.get('title'))[:50]}")
    if rev:
        # periksa ukuran konten tiap revisi
        print("\n=== ukuran konten tiap revisi ===")
        for r in rev[:8]:
            st2, d, _ = wp(f"/wp-json/wp/v2/pages/833/revisions/{r['id']}?context=edit&_fields=id,content,modified")
            raw = d.get("content", {}).get("raw", "") if isinstance(d, dict) else ""
            print(f"   #{r['id']:>7} {str(d.get('modified'))[:19]}  {len(raw):>7} karakter")
else:
    print("   ", str(rev)[:300])

print("\n=== halaman lain untuk perbandingan ===")
st, cur, _ = wp("/wp-json/wp/v2/pages/833?context=edit&_fields=id,content,modified")
print("   konten sekarang:", len(cur.get("content", {}).get("raw", "")) if isinstance(cur, dict) else cur)
