#!/usr/bin/env python3
"""Bangun + validasi threads_content_today.json untuk 15 Okt 2026 (rev 2)."""
import json, re, sys

DATE = "2026-10-15"
WS = "/home/mantapman/.hermes/profiles/atun/workspace"

UKY = """Tim marketing yang cepat berkembang bukan yang paling jago tools, tapi yang rajin belajar 3 dasar: SEO, nulis konten, dan baca data.

Aku sendiri belajar itu dari nol, dan yang paling kepake ternyata bukan tools-nya.

Sisanya sosmed, iklan, AI itu lapisan berikutnya. Baru mulai? Pilih satu, dalamin sebulan.

Skill mana yang paling kepake di kerjaanmu? Tulis di komentar ya.

https://studiosoft.id/6-skill-wajib-untuk-belajar-digital-marketing-bagi-pemula-di-tahun-2026/"""

TSLAW = """Karya kamu sudah otomatis dilindungi hak cipta sejak dibuat. Tapi kalau sampai ada sengketa, yang bikin tenang itu bukti pendaftaran.

Banyak kreator baru sadar setelah karyanya dipakai tanpa izin. Padahal daftarnya sekarang bisa online lewat e-HakCipta DJKI.

Biayanya Rp300.000-Rp500.000 tergantung jenis karya, dan perlindungannya berlaku seumur hidup pencipta plus 70 tahun.

Kamu pernah daftarin karya sendiri? Ceritakan di komentar ya.

https://www.tslaw.id/cara-daftar-hak-cipta/"""

TSC = """Banyak yang mikir dokter kulit cuma buat jerawat. Padahal cakupannya lebih luas: infeksi kulit, keluhan area kelamin, rambut rontok, sampai keluhan kuku.

Keluhan area kelamin sering ditunda karena malu, padahal perlu cepat ditangani. Pemeriksaannya rahasia dan tetap nyaman.

Kalau keluhanmu berulang dan nggak selesai pakai krim, ada baiknya diperiksa. Kamu paling ragu soal yang mana? Tulis di komentar ya.

https://www.theskincodeclinic.com/keluhan-kulit-kelamin-yang-ditangani-dokter-spesialis/"""

DAS = """Merawat mobil itu soal kebiasaan kecil, bukan perbaikan besar. Ada 6 hal yang kami selalu cek.

Ganti oli sesuai jarak tempuh, jaga suhu mesin dan air radiator, cek filter udara dan oli, dengarkan bunyi mesin yang aneh, dan jangan skip servis berkala.

Kalau ada yang dilewatkan, biayanya baru terasa di servis besar. Dari keenam itu, mana yang paling sering kamu tunda? Ceritakan di komentar ya.

https://dasindonesia.com/6-tips-cara-mudah-merawat-mobil-kesayangan-anda/"""

ITEMS = [
    {"account": "uky", "slot": 14, "text": UKY, "topic": "Belajar & Skill", "title": f"uky Belajar & Skill {DATE}", "allow_if_no_ownlink": True, "min": 300, "max": 480},
    {"account": "tslaw", "slot": 17, "text": TSLAW, "topic": "Hak Cipta", "title": f"tslaw Hak Cipta {DATE}", "min": 200, "max": 500},
    {"account": "tsc", "slot": 20, "text": TSC, "topic": "Keluhan Kulit & Kelamin", "title": f"TSC Keluhan Kulit & Kelamin {DATE}", "allow_if_no_ownlink": True, "min": 200, "max": 500},
    {"account": "das", "slot": 20, "text": DAS, "topic": "Perawatan Mobil", "title": f"DAS Perawatan Mobil {DATE}", "allow_if_no_ownlink": True, "min": 200, "max": 500},
]

BANNED_HOOKS = ["Kalau kamu bingung soal", "Saya baca artikel ini soal", "Baru baca artikel ini", "Ini penjelasan"]
STOPWORDS_OFFICIAL = ["Anda", "apabila", "tersebut", "merupakan", "adalah"]
CTA_WORDS = ["komentar", "tulis di", "ceritakan", "menurut kamu"]

ok = True
for it in ITEMS:
    t = it["text"]
    n = len(t)
    links = re.findall(r"https?://\S+", t)
    cjk = [c for c in t if "\u4e00" <= c <= "\u9fff" or "\u3040" <= c <= "\u30ff" or "\uac00" <= c <= "\ud7af"]
    ment = re.findall(r"(?<!\S)@\w+", t)
    cta = [w for w in CTA_WORDS if w.lower() in t.lower()]
    problems = []
    if not links: problems.append("TANPA LINK")
    if len(links) > 1: problems.append(f"{len(links)} link")
    if ment: problems.append(f"MENTION {ment}")
    if cjk: problems.append(f"CJK {cjk}")
    if not cta: problems.append("TANPA CTA")
    if not (it["min"] <= n <= it["max"]): problems.append(f"PANJANG {n} (target {it['min']}-{it['max']})")
    if len(it["topic"]) > 50: problems.append("TOPIC >50")
    h1 = t.split("\n")[0]
    for b in BANNED_HOOKS:
        if b.lower() in h1.lower(): problems.append(f"HOOK TERLARANG: {b}")
    for s in STOPWORDS_OFFICIAL:
        if re.search(r"(?<![\w])" + s + r"(?![\w])", t): problems.append(f"nada resmi: '{s}'")
    print(f"{it['account']:10s} len={n:4d} links={len(links)} cta={cta} topic={it['topic']!r} -> {'OK' if not problems else 'PROBLEM: ' + '; '.join(problems)}")
    if problems: ok = False

if not ok:
    print("\n❌ ADA MASALAH — tidak ditulis.")
    sys.exit(1)

data = {"date": DATE, "accounts": ITEMS}
json.dump(data, open(f"{WS}/threads_content_today.json", "w"), indent=1, ensure_ascii=False)
print("\n✅ threads_content_today.json ditulis")
