#!/usr/bin/env python3
"""Verifikasi akhir artikel #3805 (draft) 25 Okt: skema FAQ, tautan, foto, status, dan tidak ada duplikat hari ini."""
import base64, json, re, urllib.request, urllib.error

DOM = "tslaw.id"
USER, PASS = "bambangbot", "EFKm EYGx VQCP Y9go ncPr uM2Y"
AUTH = base64.b64encode(f"{USER}:{PASS}".encode()).decode()
UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/124 Safari/537.36"}


def rest(path):
    r = urllib.request.Request(f"https://{DOM}{path}", headers={"Authorization": f"Basic {AUTH}", **UA})
    with urllib.request.urlopen(r, timeout=90) as x:
        return json.loads(x.read())


def status(u):
    try:
        with urllib.request.urlopen(urllib.request.Request(u, headers=UA), timeout=60) as x:
            return x.status
    except urllib.error.HTTPError as e:
        return e.code
    except Exception as e:
        return str(e)[:40]


p = rest("/wp-json/wp/v2/posts/3805?context=edit&_fields=id,slug,link,status,date,content,title,meta,"
         "categories,tags,featured_media")
raw = p["content"]["raw"]
print("status:", p["status"], "| slug:", p["slug"], "| tanggal:", p["date"])
print("judul:", p["title"]["raw"])
print("foto:", rest(f"/wp-json/wp/v2/media/{p['featured_media']}?_fields=id,source_url,alt_text")["source_url"])
print("foto HTTP:", status(rest(f"/wp-json/wp/v2/media/{p['featured_media']}?_fields=source_url")["source_url"]))

m = re.search(r'<script type="application/ld\+json">(.*?)</script>', raw, re.S)
sk = json.loads(m.group(1)) if m else None
print("skema @type:", sk.get("@type"), "| jumlah item:", len(sk["mainEntity"]))
isi_teks = re.sub(r"<[^>]+>", " ", re.sub(r"<script.*?</script>", " ", raw, flags=re.S))
hilang = [q["name"] for q in sk["mainEntity"] if q["name"] not in isi_teks]
print("pertanyaan skema yang tidak tampil di isi:", hilang or "tidak ada")
print("jumlah <h3> FAQ:", len(re.findall(r"<h3>", raw)))
print("keyphrase:", p["meta"]["_yoast_wpseo_focuskw"])
print("semua tautan tslaw.id:")
for u in sorted(set(re.findall(r'href="(https://www\.tslaw\.id/[^"]*)"', raw))):
    print("  ", status(u), u)
print("cek duplikat hari ini:")
hari = rest("/wp-json/wp/v2/posts?status=draft,future,publish&per_page=20&context=edit&_fields=id,slug,status,date,title")
for x in hari[:4]:
    print("  ", x["id"], x["status"], x["date"][:10], x["slug"])
