#!/usr/bin/env python3
"""Generator konten Threads harian 30 Sep 2026 (tslaw 17:00, tsc 20:00, das 23:00).
SS & @uky sudah terisi pipeline lain hari ini -> guard skip (maks 1 post/hari/akun).
Caption <=480 char (hard limit Threads 500).
"""
import json, re

DATE = "2026-09-30"

tslaw = (
    "Saya selalu bilang: jangan susun surat wasiat sendiri lalu simpan di laci.\n\n"
    "Salah susun, yang berdebat di pengadilan justru keluarga yang kita tinggalkan. Ada tiga jenis wasiat: olografis, terbuka, dan rahasia. Ada pula bagian ahli waris yang tak bisa dihapus.\n\n"
    "Menurut Anda, bahas warisan perlu sejak dini atau masih tabu? Tulis di komentar.\n\n"
    "Selengkapnya: https://www.tslaw.id/pengacara-surat-wasiat/\n"
    "#hukumwaris #suratwasiat #hukumperdata #tslaw"
)

tsc = (
    "Banyak orang beli obat jerawat asal pilih.\n\n"
    "Padahal jerawat itu banyak jenisnya. Komedo putih, komedo hitam, sampai jerawat batu punya penanganan berbeda. Salah pakai produk bisa bikin iritasi. Kenali dulu jenis jerawatnya sebelum menentukan perawatan.\n\n"
    "Menurut Anda, jenis jerawat apa yang paling sulit diatasi? Tulis di komentar.\n\n"
    "Selengkapnya: https://www.theskincodeclinic.com/jenis-jerawat-dan-penanganan-3/\n"
    "#kulitsehat #jerawat #dokterkulitkrian #skincodeclinic"
)

das = (
    "Mesin jarang rusak mendadak. Biasanya ada tanda yang diabaikan.\n\n"
    "Asap knalpot putih atau biru, oli cepat habis, suara mesin kasar berketuk, sampai overheat berulang adalah tanda mesin butuh pemeriksaan menyeluruh. Kalau dibiarkan, kerusakan menjalar dan biaya perbaikan jauh lebih besar.\n\n"
    "Pernah mengalami gejala ini? Share pengalamanmu di komentar!\n\n"
    "Selengkapnya: https://dasindonesia.com/7-tanda-mesin-mobil-wajib-overhaul/\n"
    "#bengkelmobilsurabaya #overhaulmesin #perawatanmobil"
)

items = [
    {"account": "tslaw", "slot": 17, "text": tslaw},
    {"account": "tsc", "slot": 20, "text": tsc, "allow_if_no_ownlink": True},
    {"account": "das", "slot": 23, "text": das},
]

CJK = re.compile(r"[\u3000-\u303f\u3040-\u30ff\u3400-\u4dbf\u4e00-\u9fff\uf900-\ufaff\uac00-\ud7af]")
MENTION = re.compile(r"@\w+")
URL = re.compile(r"https?://\S+")
CTA = re.compile(r"komentar|pendapat|diskusi|share|pengalaman|setuju", re.I)

ok = True
for it in items:
    t = it["text"]
    n = len(t)
    urls = URL.findall(t)
    tags = re.findall(r"#(\w+)", t)
    bad_tags = [x for x in tags if x != x.lower()]
    print(f"{it['account']:9s} len={n:4d} urls={len(urls)} mention={bool(MENTION.search(t))} "
          f"cjk={bool(CJK.search(t))} cta={bool(CTA.search(t))} badhash={bad_tags}")
    if n > 480 or not urls or MENTION.search(t) or CJK.search(t) or not CTA.search(t) or bad_tags:
        ok = False
        print("   X GAGAL VALIDASI")

print("VALID" if ok else "INVALID")
if ok:
    out = {"date": DATE, "accounts": items}
    with open("threads_content_today.json", "w") as f:
        json.dump(out, f, ensure_ascii=False, indent=1)
    print("OK ditulis threads_content_today.json")
