#!/usr/bin/env python3
"""DARURAT TSLaw: (1) coba cache Bing; (2) lihat blok di halaman lain sebagai bahan bangun ulang."""
import base64, json, re, time, urllib.parse, 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 json.loads(x.read())
        except Exception:
            time.sleep(3)
    return {}


print("=== 1. cache mesin pencari ===")
try:
    u = "https://www.bing.com/search?q=" + urllib.parse.quote_plus("site:tslaw.id")
    h = urllib.request.urlopen(urllib.request.Request(u, headers={"User-Agent": "Mozilla/5.0"}), timeout=60).read().decode("utf-8", "replace")
    cache = re.findall(r'href="(https?://cc\.bingj\.com/cache\.aspx[^"]+)"', h)
    print(f"   Bing: {len(cache)} tautan cache")
    for c in cache[:3]:
        print("     ", c[:120])
    if not cache:
        print("   (tidak ada tautan cache di hasil Bing)")
except Exception as e:
    print("   Bing gagal:", str(e)[:80])

print("\n=== 2. blok di halaman lain (bahan bangun ulang) ===")
for pid, nama in ((834, "/tentang/"), (12, "/practice-areas/"), (10, "/hubungi/"), (2798, "/artikel/")):
    d = wp(f"/wp-json/wp/v2/pages/{pid}?context=edit&_fields=id,content")
    raw = d.get("content", {}).get("raw", "") if isinstance(d, dict) else ""
    blok = re.findall(r"<!-- wp:([a-z0-9\-/]+)", raw)
    from collections import Counter
    print(f"\n   #{pid} {nama} — {len(raw)} karakter, {len(blok)} blok")
    print(f"      jenis blok: {dict(Counter(blok).most_common(8))}")
    judul = re.findall(r'"tagName":"(h[1-6])","text":"([^"]{3,70})"', raw)
    print(f"      heading: {judul[:10]}")
    img = re.findall(r'"url":"(https://[^"]+\.(?:jpg|jpeg|png|webp))"', raw)
    print(f"      gambar dipakai: {len(set(img))}")

print("\n=== 3. media library (aset gambar beranda masih ada?) ===")
r = urllib.request.Request(f"https://{DOM}/wp-json/wp/v2/media?per_page=8&orderby=date&order=desc&_fields=id,source_url,media_details",
                           headers={"Authorization": f"Basic {AUTH}", "User-Agent": "Mozilla/5.0"})
with urllib.request.urlopen(r, timeout=120) as x:
    med = json.loads(x.read())
for m in med if isinstance(med, list) else []:
    print(f"   #{m['id']:>5} {m['source_url'].split('/')[-1][:52]:<54} {m.get('media_details',{}).get('width')}x{m.get('media_details',{}).get('height')}")
