#!/usr/bin/env python3
"""Periksa kualitas beberapa artikel StudioSoft sekaligus (untuk memutuskan mana yang dipakai)."""
import base64, html, json, re, sys, urllib.request

S = "https://studiosoft.id"
AUTH = base64.b64encode(b"bambangbot:q26r RePo BVy6 pwU2 F3z7 ouyl").decode()
UA = {"User-Agent": "Mozilla/5.0"}
IDS = [int(x) for x in sys.argv[1:]]

for pid in IDS:
    h = {"Authorization": f"Basic {AUTH}", **UA}
    r = urllib.request.Request(f"{S}/wp-json/wp/v2/posts/{pid}?context=edit"
                               f"&_fields=id,slug,link,date,status,title,content,meta,excerpt", headers=h)
    p = json.loads(urllib.request.urlopen(r, timeout=120).read())
    raw = p["content"]["raw"]
    teks = html.unescape(re.sub(r"\s+", " ", re.sub(r"<[^>]+>", " ", raw))).strip()
    m = p.get("meta") or {}
    print(f"\n{'=' * 78}\n#{p['id']} · {p['status']} · {p['date']} · {p['link']}")
    print(f"judul      : {html.unescape(p['title']['raw'])}")
    print(f"yoast judul: {m.get('_yoast_wpseo_title')}")
    print(f"fokus      : {m.get('_yoast_wpseo_focuskw')}")
    print(f"desc       : {str(m.get('_yoast_wpseo_metadesc'))[:150]}")
    print(f"panjang    : {len(teks.split())} kata · H2: {raw.count('<h2')} · H3: {raw.count('<h3')}")
    print(f"tombol WA  : {'ada' if 'wa.me' in raw else 'TIDAK'} · tautan studiosoft: {raw.count('studiosoft.id/')}"
          f" · em dash: {raw.count('—')}")
    print(f"paragraf 1 : {teks[:300]}")
    print(f"paragraf 2 : {teks[300:600]}")
    hd = re.findall(r"<h2[^>]*>(.*?)</h2>", raw, re.S)
    print("sub-judul  : " + " | ".join(html.unescape(re.sub(r'<[^>]+>', '', x)).strip()[:52] for x in hd[:10]))
