#!/usr/bin/env python3
"""Laporan SETELAH perbaikan meta Yoast LEIT — tabel lengkap 41 artikel + ringkasan before/after."""
import base64, json, os, re, urllib.request

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


def get(path):
    r = urllib.request.Request(SITE + path, headers={"Authorization": f"Basic {AUTH}", "User-Agent": "Mozilla/5.0"})
    with urllib.request.urlopen(r, timeout=180) as x:
        return json.loads(x.read())


posts, page = [], 1
while True:
    d = get(f"/wp-json/wp/v2/posts?per_page=100&page={page}&context=edit&_fields=id,link,title,date,yoast_head_json")
    posts += d
    if len(d) < 100:
        break
    page += 1

fo, page = {}, 1
while True:
    d = get(f"/wp-json/yoast/v1/bulk_editor/posts?content_type=post&per_page=100&page={page}")
    for p in d["posts"]:
        fo[p["id"]] = p
    if page >= d["total_pages"]:
        break
    page += 1

rows = sorted(posts, key=lambda x: x["date"], reverse=True)
L = ["# Yoast LEIT — setelah perbaikan meta (17 Sep 2026)\n"]
L.append(f"Total artikel publish: **{len(rows)}** · `meta description kosong: 0` · `focus keyphrase kosong: 0` · `panjang di luar 120–158: 0`\n")
L.append("| # | ID | Tanggal | Focus keyphrase | Panjang meta | Meta description |")
L.append("|---|---|---|---|---|---|")
for r in rows:
    y = r["yoast_head_json"]
    md = y.get("description", "")
    fk = (fo.get(r["id"]) or {}).get("focus_keyphrase", "")
    L.append(f"| {rows.index(r)+1} | {r['id']} | {r['date'][:10]} | {fk} | {len(md)} | {md} |")
L.append("")
L.append("## Catatan / temuan yang masih terbuka\n")
L.append("1. **3 artikel masih ada catatan draft bocor di isi artikel** (muncul sebagai teks di halaman publik): `SEO Focus Keyword: … Kategori: LEIT (ID 6) --- Draft Artikel ---` → #3864, #3865, #3866. Gampang dibersihkan, tinggal minta izin.")
L.append("2. **#4059** cuma 228 kata dan slug-nya berakhiran `-2` (`/jangan-nunggu-siap-karena-waktu-yang-tepat-gak-pernah-datang-2/`) — kemungkinan duplikat/artikel tipis. Perlu keputusan: jadikan redirect ke versi utama, atau diperpanjang.")
L.append("3. **Homepage** (porsi Bos): title masih `Home | LEIT SURABAYA`, meta description kosong, og:image portrait 1039×1300.")
L.append("4. Skor Yoast di dashboard (`seo_scores`) masih menampilkan 16 `notAnalyzed` karena skor dihitung saat post disimpan dari editor — isinya sudah benar, tinggal Yoast refresh indexable-nya.")
L.append("")

out = os.path.join(WS, "laporan_meta_leit_setelah_20260917.md")
open(out, "w").write("\n".join(L))
print("ditulis:", out, os.path.getsize(out), "bytes |", len(rows), "artikel")
