#!/usr/bin/env python3
"""Generate threads_content_today.json untuk 2026-09-26 (job 04:00 WIB 26 Sep)."""
import json, re, os

WS = '/home/mantapman/.hermes/profiles/atun/workspace'
DATE = '2026-09-26'
NL = chr(10)

def cap(*paras):
    return (NL + NL).join(paras)

content = {
    "date": DATE,
    "accounts": [
        {
            "account": "studiosoft",
            "slot": 11,
            "text": cap(
                "Saya sering mengaudit website yang trafiknya datar meski kontennya rajin ditulis. Masalahnya kerap di hal dasar: judul halaman, struktur heading, dan kecepatan.",
                "Tujuh teknik SEO on-page di artikel ini saya rangkum dari kebiasaan kerja tim. Dari riset kata kunci sampai tautan internal, semua bisa dikerjakan tanpa alat berbayar.",
                "https://studiosoft.id/7-teknik-seo-on-page-untuk-optimasi-website-bisnis-anda/",
                "Teknik mana yang paling sering Anda lewatkan di website sendiri? Komentar di bawah!",
            ),
        },
        {
            "account": "uky",
            "slot": 14,
            "text": cap(
                "Saya percaya bisnis kecil tidak kalah hanya karena iklannya lebih tipis. Yang menentukan justru keberanian mencoba cara murah yang belum dipakai pesaing.",
                "Sepuluh langkah di artikel ini saya susun seperti urutan kerja yang biasa saya pakai: pilih satu masalah nyata, tawarkan solusi sederhana, lalu ukur hasilnya di minggu yang sama.",
                "https://studiosoft.id/10-langkah-mudah-mulai-bisnis-online-dari-nol-tanpa-modal-besar/",
                "Menurut Anda, cara murah apa yang paling berhasil? Komentar di bawah!",
            ),
        },
        {
            "account": "tslaw",
            "slot": 17,
            "text": cap(
                "Saya sering membaca kontrak usaha yang rapi di bagian harga, tapi kosong di bagian penyelesaian sengketa. Padahal di situlah masalah biasanya bermula.",
                "Klausul sengketa menentukan forum, hukum yang berlaku, dan langkah yang wajib ditempuh sebelum berperkara. Tanpa itu, posisi UMKM jadi lemah meski perjanjiannya tertulis.",
                "https://www.tslaw.id/klausul-penyelesaian-sengketa-kontrak-umkm/",
                "Sudahkah kontrak usaha Anda memuat klausul ini? Ceritakan di komentar.",
            ),
        },
        {
            "account": "tsc",
            "slot": 20,
            "allow_if_no_ownlink": True,
            "text": cap(
                "Saya sering menemui pasien yang menyesal karena memilih perawatan hanya dari harga murah. Kulit adalah soal medis, bukan soal promo.",
                "Ciri klinik yang bisa dipercaya terlihat sebelum tindakan: ada pemeriksaan awal, penjelasan risiko, dan ekspektasi hasil yang realistis. Kalau tawaran terdengar terlalu sempurna, justru perlu dicurigai.",
                "https://www.theskincodeclinic.com/ciri-ciri-dokter-kecantikan-krian-terpercaya/",
                "Pernah punya pengalaman memilih klinik? Share pengalamanmu di komentar!",
            ),
        },
        {
            "account": "das",
            "slot": 23,
            "text": cap(
                "Saya kerap menemukan mobil premium yang sudah lama diservis, tapi tetap bermasalah karena pengerjaannya tidak mengikuti standar.",
                "Standar kerja bengkel yang benar tidak berhenti di ganti oli. Ada urutan torsi, pengecekan komponen pendukung, dan uji jalan sebelum mobil diserahkan kembali ke pemiliknya.",
                "https://dasindonesia.com/standar-kerja-bengkel-mobil-premium-surabaya/",
                "Menurut Anda, hal apa yang wajib ada di bengkel agar Anda percaya? Komentar di bawah!",
            ),
        },
    ],
}

ok = True
for a in content["accounts"]:
    t = a["text"]
    n = len(t)
    links = re.findall(r"https?://\S+", t)
    mentions = re.findall(r"@\w+", t)
    flag = "OK" if n <= 500 and links and not mentions else "!! CEK"
    print(f"{a['account']:11s} slot={a['slot']:2d} len={n:3d} links={len(links)} mention={mentions} {flag}")
    if n > 500 or not links or mentions:
        ok = False

out = os.path.join(WS, 'threads_content_today.json')
json.dump(content, open(out, 'w', encoding='utf-8'), ensure_ascii=False, indent=1)
print('ditulis:', out, '| semua valid:', ok)
