#!/usr/bin/env python3
"""
Threads @ukyhandoko — storytelling niche AI / Personal Assistant / Hermes / OpenClaw / Bot Rider.
Framework 5 babak: Konteks-Karakter-Konflik-Klimaks-Kesimpulan. Isi slot KOSONG (13-14 Sep).
"""
import sys, json, urllib.request
from datetime import datetime, timedelta, timezone
sys.path.insert(0, "/home/mantapman/.hermes/profiles/atun/workspace")
from repliz_client import HEADERS, BASE

WIB = timezone(timedelta(hours=7))
UKY_T = "6a334e89c5ff4ce3a3225a48"
SLOTS = [5, 8, 11, 14, 17, 20, 23]

STORIES = [
    ("Awalnya saya takut sama AI, sekarang jadi asisten harian",
     "Dulu saya termasuk orang yang skeptis sama AI. Rasanya seperti kerjaan saya sebagai pembuat website dan konten bakal tergantikan.",
     "Saya — praktisi digital yang bangga dengan skill manual, yang takut teknologi baru menyingkirkan manusia.",
     "Di satu sisi AI mulai dipakai di mana-mana. Di sisi lain saya nggak mau ketinggalan. Konfliknya bukan antara saya dan AI — tapi antara rasa takut dan rasa ingin tahu.",
     "Suatu malam saya coba AI untuk riset kata kunci sebuah proyek. Yang biasanya butuh 3 jam, selesai dalam 20 menit. Saya tercengang — bukan karena takut, tapi karena sadar ini alat, bukan pengganti.",
     "Sekarang AI jadi asisten harian saya: riset, konten, analisis, sampai menyusun draft. Manusianya tetap saya — AI cuma bikin saya lebih cepat dan lebih fokus.\n\nKamu juga sempat takut sama AI? Sekarang gimana perasaanmu? Cerita di komentar! 👇"),
    ("Personal assistant AI yang jaga bisnis 24 jam",
     "Bisnis digital itu nggak pernah tidur. Klien bisa chat jam 11 malam, deadline nggak kenal libur, dan sebagai pemilik usaha saya harus selalu siap.",
     "Saya yang dulu harus bales chat satu-satu, jaga jadwal, dan ingat semua detail klien seorang diri.",
     "Semakin besar klien, semakin banyak hal kecil yang numpuk. Saya mulai lupa jadwal, telat bales, dan itu bikin malu ke klien.",
     "Saya mulai pakai personal assistant berbasis AI — dari yang mengatur jadwal, mengingatkan deadline, sampai menyusun draft balasan. Yang tadinya makan waktu berjam-jam, sekarang kelar dalam hitungan menit.",
     "Bukan berarti manusia nggak penting — justru dengan bantuan AI, saya punya lebih banyak waktu buat ngobrol sama klien secara personal. AI urus yang repetitif, saya urus yang butuh hati.\n\nPernah kewalahan urus bisnis sendiri? Cerita di komentar! 👇"),
    ("Bot Rider: robot yang bantuin kerja rutin saya",
     "Pernah punya tugas yang harus diulang tiap hari: cek website, update konten, kirim laporan. Membosankan, tapi wajib.",
     "Saya yang tiap pagi buka 5 aplikasi, copas data, dan nulis laporan manual — sampai capek dan sering telat.",
     "Tugas rutin itu penting tapi nyedot waktu. Kalau salah copas dikit aja, laporannya berantakan. Saya butuh cara biar ini nggak makan energi tiap hari.",
     "Saya coba otomasi pakai bot — dari yang cek otomatis, generate laporan, sampai kirim jadwal. Namanya saya kasih 'Bot Rider'. Dia yang 'numpak' tugas-tugas repetitif saya.",
     "Sekarang tiap pagi laporan udah siap sebelum saya buka laptop. Bot Rider kerja di belakang layar, saya fokus ke hal yang lebih strategis. Manusia tetap pegang kendali — bot yang bantu eksekusi.\n\nKamu pernah coba otomasi tugas rutin? Cerita pengalamanmu! 👇"),
    ("Hermes dan OpenClaw — dunia agent AI yang bikin saya melongo",
     "Beberapa bulan lalu saya iseng eksplorasi framework agent AI — Hermes, OpenClaw, dan semacamnya. Tadinya cuma penasaran: sejauh mana AI bisa 'kerja' sendiri?",
     "Saya — yang selama ini pake AI cuma buat chat dan generate gambar, belum pernah lihat AI yang bisa pakai tools dan selesaikan tugas panjang.",
     "Konsep agent AI itu bikin pusing: dia bisa akses file, jalanin script, buka browser, sampai kirim pesan. Pertanyaannya: bisa dipercaya nggak? Gimana kalau salah langkah?",
     "Saya coba kasih satu tugas kompleks ke agent: riset kompetitor, susun laporan, dan jadwalkan konten. Dia kerjakan tahap demi tahap — saya tinggal review hasilnya. Saya melongo: ini kayak punya karyawan yang nggak capek.",
     "Agent AI bukan sekadar chatbot — dia asisten yang bisa 'tangan'. Tapi kuncinya tetap manusia yang kasih arahan jelas dan review hasilnya. Teknologi bagus, kendali tetap di kita.\n\nUdah pernah coba agent AI? Cerita di komentar! 👇"),
    ("Rutinitas baru saya bareng AI tiap pagi",
     "Dulu pagi saya selalu dimulai dengan panik: cek inbox, bales chat, lihat jadwal, nulis to-do — semua berebut perhatian.",
     "Saya yang dulu suka mulai hari dengan kacau dan sering kehabisan energi sebelum jam 9 pagi.",
     "Semua tugas pagi itu penting, tapi nyelesaiinnya satu-satu bikin otak capek duluan. Saya butuh cara mulai hari yang lebih tenang dan teratur.",
     "Sekarang tiap pagi AI saya sudah nyiapin ringkasan: pesan penting mana yang perlu dibales duluan, jadwal hari ini, dan draft balasan buat yang nggak butuh mikir panjang. Saya tinggal review dan eksekusi.",
     "Mulai hari dengan kepala tenang itu game changer. AI bukan bikin saya malas — justru bikin saya punya ruang buat mikir yang beneran penting.\n\nGimana rutinitas pagimu? Udah ada AI-nya belum? Cerita di komentar! 👇"),
]

def get_pending():
    pend = []
    for p in range(1, 60):
        raw = urllib.request.Request(f"{BASE}/public/schedule?page={p}&limit=100", headers=HEADERS)
        with urllib.request.urlopen(raw, timeout=30) as r:
            docs = json.load(r)["docs"]
        for d in docs:
            if d.get("accountId") == UKY_T and (d.get("status") or "").lower() == "pending":
                pend.append(d)
    return pend

pend = get_pending()
taken = {(d.get("scheduleAt") or "")[:13] for d in pend}
now = datetime.now(WIB)
day = now.replace(minute=0, second=0, microsecond=0)

ok = fail = 0
for judul, konteks, karakter, konflik, klimaks, kesimpulan in STORIES:
    slot = None
    for _ in range(14):
        for h in SLOTS:
            cand = day.replace(hour=h)
            if cand <= now:
                continue
            utc_h = cand.astimezone(timezone.utc).strftime("%Y-%m-%dT%H")
            if utc_h not in taken:
                slot = cand
                break
        if slot:
            break
        day += timedelta(days=1)
    if slot is None:
        print("⚠️ slot habis")
        break
    taken.add(slot.astimezone(timezone.utc).strftime("%Y-%m-%dT%H"))
    at = slot.astimezone(timezone.utc).strftime("%Y-%m-%dT%H:%M:%S.000Z")
    cap = (f"📖 {judul}\n\n"
           f"Konteks — {konteks}\n\n"
           f"Karakter — {karakter}\n\n"
           f"Konflik — {konflik}\n\n"
           f"Klimaks — {klimaks}\n\n"
           f"Kesimpulan — {kesimpulan}\n\n"
           f"#AI #PersonalAssistant #Hermes #OpenClaw #BotRider #DigitalMarketing")
    payload = {
        "accountId": UKY_T, "title": f"Cerita: {judul}",
        "description": cap, "topic": "Storytelling AI", "type": "text",
        "medias": [], "scheduleAt": at,
        "replies": [{"text": "AI bukan pengganti kita — dia asisten yang bikin kita makin efektif. 🤖💪", "username": ""}],
    }
    req = urllib.request.Request(f"{BASE}/public/schedule",
                                 data=json.dumps(payload).encode(),
                                 headers={**HEADERS, "Content-Type": "application/json"})
    try:
        with urllib.request.urlopen(req, timeout=30) as r:
            res = json.load(r)
        ok += 1
        print(f"  ✅ {slot.strftime('%d/%m %H:00')} WIB | {judul[:55]}")
    except Exception as e:
        fail += 1
        print(f"  ❌ {judul[:40]}: {e}")
print(f"\n📊 Total: {ok} OK, {fail} gagal")
