#!/usr/bin/env python3
"""TSC batch 6: pilih 5 artikel berikutnya dari antrean lalu baca (heading, ukuran, FAQ, klaim)."""
import base64, html, json, re, urllib.request, importlib.util

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
spec = importlib.util.spec_from_file_location("cfg_tsc", f"{WS}/cfg_tsc.py")
m = importlib.util.module_from_spec(spec); spec.loader.exec_module(m)
AUTH = base64.b64encode(f'{m.CFG["user"]}:{m.CFG["pass"]}'.encode()).decode()
UA = {"User-Agent": "Mozilla/5.0"}

SUDAH = {9266, 1675, 1697, 1713, 1672, 1662, 9268, 1716, 1669, 1744, 1747, 1691, 8560, 1688, 1653,
         1629, 1908, 1647, 1644, 9260, 8423}
data = json.load(open(f"{WS}/drafts/tsc_tipis_urutan.json"))
sisa = [a for a in data["berimpresi"] if a["id"] not in SUDAH]
print(f"sisa: {len(sisa)} artikel\n")
pilih = sisa[:5]

KLAIM = r"permanen|tanpa risiko|Rp\d|4\.\d/5|garansi|refund|BPOM|Halal MUI|Kemenkes|SpKK|100%|\b\d{2}%|dijamin|terbaik nomor|nomor satu"
for a in pilih:
    pid = a["id"]
    r = urllib.request.Request(f'https://{m.CFG["domain"]}/wp-json/wp/v2/posts/{pid}?context=edit&_fields=id,slug,title,content',
                               headers={"Authorization": f"Basic {AUTH}", **UA})
    with urllib.request.urlopen(r, timeout=150) as x:
        d = json.loads(x.read())
    raw = d["content"]["raw"]
    teks = re.sub(r"\s+", " ", html.unescape(re.sub(r"<[^>]+>", " ", re.sub(r"<script.*?</script>", " ", raw, flags=re.S))))
    kata = len([w for w in teks.split() if w])
    faq = bool(re.search(r"<h2[^>]*>\s*FAQ\s*</h2>", raw, re.I)) or "FAQPage" in raw
    klaim = sorted({k.lower() for k in re.findall(KLAIM, raw, re.I)})
    print(f"\n{'='*92}")
    print(f"### #{pid} /{d['slug']} — {kata} kata | imp {a['imp']} pos {a['pos']} | FAQ: {'ada' if faq else 'BELUM'}")
    print(f"   judul: {html.unescape(d['title']['rendered'])}")
    print(f"   klaim terdeteksi: {klaim if klaim else 'tidak ada'}")
    print(f"   heading: {[html.unescape(re.sub(r'<[^>]+>', '', x)).strip()[:50] for x in re.findall(r'<h[23][^>]*>(.*?)</h[23]>', raw, re.S)][:12]}")
    print(f"   awal: {teks[:200]}")
