#!/usr/bin/env python3
"""Batch konten reply-driven + mention se-niche — 8 akun Threads (3-4 Agustus 2026).
Tiap post: hook pertanyaan + opini tegas + mention akun se-niche.
Slot dipilih yang gak bentrok dgn diskusi rantai yang udah jalan.
"""
import sys, json, urllib.request
from datetime import datetime, timezone, timedelta
sys.path.insert(0, "/home/mantapman/.hermes/profiles/atun/workspace")
from repliz_client import get_client, HEADERS, BASE, ACC

client = get_client()

A = {
    "uky":      ACC.UKY_THREADS,
    "ss":       ACC.STUDIOSOFT_THREADS,
    "leit":     ACC.LEIT_THREADS,
    "tslaw":    ACC.TSLAW_THREADS,
    "tsc":      ACC.TSC_THREADS,
    "das":      ACC.DAS_THREADS,
    "everybe":  "6a44ed1920e4f4f195d8ecf7",
    "dmark":    "6a3574c6c5ff4ce3a3228d70",
}

POSTS = [
    {
        "account": "tsc",
        "slot_wib": "2026-08-03T08:00:00",
        "text": (
            "Pertanyaan jujur: kapan terakhir kali kamu cek kondisi kulit ke dokter spesialis?\n"
            "\n"
            "Banyak yang baru ke klinik pas kulitnya udah parah — padahal 80% masalah kulit "
            "itu bisa dicegah kalau ketahuan dari awal. Skincare mahal gak akan nolong kalau "
            "diagnosisnya salah.\n"
            "\n"
            "Konsultasi rutin itu bukan cuma buat yang bermasalah, tapi buat yang mau "
            "kulitnya tetap sehat. Setuju gak? @everybe, sebagai brand personal care, "
            "menurut kamu kapan seseorang sebaiknya mulai konsultasi ke dokter kulit?"
        ),
    },
    {
        "account": "uky",
        "slot_wib": "2026-08-03T11:00:00",
        "text": (
            "Menurut saya, bisnis kecil yang gagal itu jarang karena produknya jelek — "
            "kebanyakan karena gak punya sistem.\n"
            "\n"
            "Jualan jalan, order masuk, tapi semuanya manual: catat di buku, chat satu-satu, "
            "ngandelin ingatan. Begitu orderan naik, semuanya ambruk sendiri.\n"
            "\n"
            "Sistem itu bukan cuma buat perusahaan gede. Bisnis 1 orang pun butuh: "
            "cara terima order yang jelas, cara catat stok, cara follow-up pelanggan.\n"
            "\n"
            "Setuju atau ngerasa gak perlu? @studiosoft.id, dari pengalamanmu ngurus "
            "banyak klien, seberapa sering bisnis kecil kolaps gara-gara gak ada sistem?"
        ),
    },
    {
        "account": "ss",
        "slot_wib": "2026-08-03T14:00:00",
        "text": (
            "Hot take: website itu bukan proyek sekali jadi, tapi aset yang harus dirawat "
            "setiap bulan.\n"
            "\n"
            "Banyak bisnis bikin website sekali, terus dibiarin 2 tahun. Konten basi, "
            "kecepatan lemot, gak responsif di HP. Hasilnya? Google nurunin ranking, "
            "pengunjung kabur.\n"
            "\n"
            "Website yang sehat itu kayak toko: harus dirapiin, diisi barang baru, "
            "dan dijaga biar orang betah. Setuju? @ukyhandoko, dari sisi founder "
            "agency, gimana cara kamu meyakinkan klien buat rawat website rutin?"
        ),
    },
    {
        "account": "leit",
        "slot_wib": "2026-08-03T17:00:00",
        "text": (
            "Banyak orang salah kaprah: belajar bahasa Inggris itu bukan soal hafal "
            "grammar, tapi soal BERANI NGOMONG.\n"
            "\n"
            "Saya sering lihat orang yang nilai TOEFL-nya tinggi tapi pas disuruh "
            "presentasi langsung kaku. Kebalikannya, yang lancar ngomong justru "
            "yang jarang mikirin grammar pas bicara.\n"
            "\n"
            "Bahasa itu alat komunikasi, bukan mata pelajaran. Setuju? @tslaw, "
            "di dunia hukum yang penuh istilah asing, seberapa penting sih "
            "kemampuan komunikasi bahasa Inggris buat klien & profesional?"
        ),
    },
    {
        "account": "tslaw",
        "slot_wib": "2026-08-03T20:00:00",
        "text": (
            "Satu hal yang masih diremehkan pelaku UMKM: KONTRAK.\n"
            "\n"
            "\"Ah, sama teman sendiri, gak usah ribet.\" Padahal justru kerja sama "
            "sama orang dekat itu yang paling sering berujung masalah kalau gak "
            "ada hitam di atas putih.\n"
            "\n"
            "Kontrak sederhana 1 halaman aja udah cukup: scope kerja, harga, "
            "jangka waktu, dan konsekuensi kalau gak ditepati. Itu bukan biaya, "
            "itu investasi.\n"
            "\n"
            "Setuju? @studiosoft.id, sering gak sih klien kalian yang kena "
            "masalah gara-gara kerja sama tanpa kontrak?"
        ),
    },
    {
        "account": "das",
        "slot_wib": "2026-08-03T23:00:00",
        "text": (
            "Mitos yang paling sering bikin pemilik mobil boncos: \"Overhaul itu "
            "bikin mesin cepet rusak.\"\n"
            "\n"
            "Padahal justru sebaliknya. Mesin yang udah waktunya overhaul tapi "
            "dipaksain dipake terus — itu yang bikin rusak parah dan biayanya "
            "malah berlipat.\n"
            "\n"
            "Overhaul yang dikerjakan teknisi berpengalaman itu malah bikin mesin "
            "kayak baru lagi. Kuncinya: jangan nunggu rusak total.\n"
            "\n"
            "Setuju atau masih ragu? @ukyhandoko, pengalamanmu pribadi gimana "
            "soal perawatan mobil?"
        ),
    },
    {
        "account": "everybe",
        "slot_wib": "2026-08-04T08:00:00",
        "text": (
            "Self-care itu bukan soal boros beli produk mahal. Justru yang paling "
            "sering dilupakan: KONSISTENSI.\n"
            "\n"
            "Pakai 10 produk tapi gak rutin = hasilnya nol. Pakai 2 produk "
            "yang tepat setiap hari = perubahan keliatan dalam 2-4 minggu.\n"
            "\n"
            "Rutinitas kecil yang konsisten selalu menang dibanding treatment "
            "besar yang sekali-sekali. Setuju? @dniclinic_krian, dari sisi "
            "klinik, gimana cara edukasi pasien biar konsisten rawat kulitnya?"
        ),
    },
    {
        "account": "dmark",
        "slot_wib": "2026-08-04T11:00:00",
        "text": (
            "Branding itu bukan soal logo bagus. Branding itu soal KONSISTENSI "
            "janji ke pelanggan.\n"
            "\n"
            "Banyak bisnis ganti-ganti identitas tiap ganti mood: warna ganti, "
            "tone berubah, pesan gak nyambung. Pelanggan bingung, trust hilang.\n"
            "\n"
            "Brand yang kuat itu membosankan secara visual — tapi konsisten "
            "secara pesan. Setuju? @studiosoft.id, dari data yang kalian pegang, "
            "seberapa besar pengaruh konsistensi brand ke kepercayaan pelanggan?"
        ),
    },
]

def slot_to_utc(wib_str):
    dt = datetime.fromisoformat(wib_str)
    return (dt - timedelta(hours=7)).strftime("%Y-%m-%dT%H:%M:%S.000Z")

def enforce_max(text, maxlen=500):
    if len(text) <= maxlen:
        return text
    lines = text.split('\n')
    hashtags = ''
    body_lines = []
    for line in lines:
        if line.startswith('#') and not hashtags:
            hashtags = line
        else:
            body_lines.append(line)
    body = '\n'.join(body_lines)
    max_body = maxlen - len(hashtags) - 1
    if max_body < 50:
        return text[:maxlen]
    body = body[:max_body].rstrip()
    return body + '\n' + hashtags

def main():
    print("🔥 Threads Reply-Driven Batch — 8 akun")
    print("=" * 55)
    ok_count = 0
    for p in POSTS:
        acc = p["account"]
        text = enforce_max(p["text"])
        sched = slot_to_utc(p["slot_wib"])
        print(f"📌 {acc} @ {p['slot_wib']} WIB [len={len(text)}]")
        try:
            r = client.schedule_text(A[acc], text, sched, title="")
            sid = r.get("scheduleId", "?")
            print(f"   ✅ {sid}")
            ok_count += 1
        except Exception as e:
            print(f"   ❌ {type(e).__name__}: {str(e)[:100]}")
    print("=" * 55)
    print(f"✅ {ok_count}/{len(POSTS)} terjadwal")

if __name__ == "__main__":
    main()
