#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Perbanyak konten PERTANYAAN (terbukti paling banyak komentar — analisis 11 Sep 2026).
Target: uky & StudioSoft, slot kosong 27 Sep+. ≤500 char + ajakan jawab.
"""
import sys, json, random, urllib.request
from datetime import datetime, timedelta, timezone
sys.path.insert(0, "/home/mantapman/.openclaw/workspace-atun")
from repliz_client import HEADERS, BASE
from pangkas_threads import batasi

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

UKY_Q = [
    "Pertanyaan jujur buat pebisnis: kapan terakhir kali kamu lihat data website sendiri? 📊\n\nKalau jawabannya 'lupa' atau 'nggak pernah' — nggak apa-apa, banyak yang sama. Mulai dari 15 menit tiap Senin aja.\n\nJawab jujur di komentar: kapan terakhir cek? 👇",
    "Kalau harus pilih SATU buat 6 bulan ke depan, kamu pilih mana? 🤔\n\nA. Fokus SEO organik\nB. Iklan berbayar\nC. Konten media sosial\nD. Perbaiki website dulu\n\nPilih + alasannya di komentar. Saya bantu analisis kalau perlu! 👇",
    "Menurut kamu: bisnis yang sukses itu yang paling inovatif, atau yang paling konsisten? 🎯\n\nSaya condong ke konsisten — inovasi tanpa konsistensi cuma ide yang nggak jalan.\n\nKamu tim mana? Jawab di komentar! 👇",
    "Tanya dong: apa alasan utama orang beli dari kamu, bukan dari kompetitor? 👀\n\nKalau kamu sendiri bingung jawab — itu sinyal penting. Karena kalau kita nggak tahu, pelanggan juga nggak tahu.\n\nJawabanmu menarik nih. Tulis di komentar! 👇",
    "Pertanyaan buat yang punya website: 👋\n\nDalam sebulan terakhir, berapa orang yang menghubungi kamu LEWAT website?\n\nA. Nol\nB. 1-5\nC. 6-20\nD. Lebih dari 20\n\nJawab A/B/C/D! Yang nol jangan malu — kita perbaiki sama-sama. 👇",
    "Coba renungkan: kalau bisnismu hilang dari internet besok, ada yang sadar? 🤔\n\nKalau jawabannya 'nggak' — berarti kehadiran digitalnya belum kuat. Bukan masalah besar, tapi perlu dibenahi.\n\nJujur aja di komentar, jawaban apa? 👇",
    "Mana yang lebih susah: cari pelanggan baru atau pertahankan yang lama? 🎯\n\nRiset bilang cari baru 5x lebih mahal. Tapi praktiknya banyak yang fokus ke yang baru terus.\n\nMenurut pengalamanmu gimana? Cerita di komentar! 👇",
    "Pertanyaan simpel: apa 1 hal yang paling sering ditanyakan pelanggan ke kamu? 🗣️\n\nJawaban itu = konten terbaikmu. Kalau ditanya 10x, berarti 100 orang lain juga mikir hal sama.\n\nTulis pertanyaannya di komentar, saya bantu jadi ide konten! 👇",
]

SS_Q = [
    "Diskusi dong: menurut kalian, kenapa banyak UMKM yang websitenya sudah bagus tapi tetap sepi pengunjung? 🤔\n\nJawaban saya: karena website yang bagus belum tentu ditemukan. Visibilitas dan kualitas itu dua hal beda.\n\nPendapat kalian apa? Komentar di bawah! 👇",
    "Kalau budget marketing terbatas, kalian pilih mana dulu? 💰\n\nA. Bikin website\nB. SEO\nC. Konten sosial media\nD. Iklan berbayar\n\nJawab + alasan di komentar. Paling banyak dipilih nanti saya bahas khusus! 👇",
    "Pertanyaan buat pemilik bisnis: apa target utama digital marketing kamu tahun ini? 🎯\n\nA. Lebih banyak leads\nB. Brand awareness\nC. Penjualan langsung\nD. Semua\n\nPilih dan ceritakan situasimu. Saya bantu arahkan strateginya! 👇",
    "Menurut kalian, berapa lama wajar nunggu hasil SEO? ⏳\n\nSaya jawab duluan: 3-6 bulan untuk hasil stabil. Yang janji seminggu — hati-hati.\n\nKalau menurut kalian berapa? Diskusi di komentar! 👇",
    "Jujur: website bisnis kamu sudah mobile-friendly belum? 📱\n\nMayoritas orang akses dari HP. Kalau tampilannya berantakan di layar kecil, mereka pergi sebelum baca.\n\nCek sekarang, lalu ceritakan hasilnya di komentar! 👇",
]

def get_pending(accid):
    out = []
    for p in range(1, 90):
        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") == accid and (d.get("status") or "").lower() == "pending":
                out.append(d)
    return out

def taken_set(pend):
    s = set()
    for d in pend:
        at = d.get("scheduleAt") or ""
        try:
            dt = datetime.fromisoformat(at.replace("Z", "+00:00")).astimezone(WIB)
            s.add(dt.strftime("%Y-%m-%d %H"))
        except Exception:
            continue
    return s

def next_slot(day, taken):
    for _ in range(40):
        for h in SLOTS:
            cand = day.replace(hour=h)
            if cand <= datetime.now(WIB):
                continue
            if cand.strftime("%Y-%m-%d %H") not in taken:
                return cand
        day += timedelta(days=1)
    return None

def create(accid, cap, at, topic):
    payload = {"accountId": accid, "title": f"Threads — {topic}", "description": batasi(cap),
               "topic": topic, "type": "text", "medias": [], "scheduleAt": at, "replies": []}
    req = urllib.request.Request(f"{BASE}/public/schedule", data=json.dumps(payload).encode(),
                                 headers={**HEADERS, "Content-Type": "application/json"})
    with urllib.request.urlopen(req, timeout=30) as r:
        return json.load(r)

total = 0
for accid, bank, who in [(UKY, UKY_Q, "uky"), (SS, SS_Q, "ss")]:
    pend = get_pending(accid)
    taken = taken_set(pend)
    day = datetime.now(WIB).replace(minute=0, second=0, microsecond=0)
    cnt = 0
    print(f"=== {who} — konten pertanyaan ===")
    for cap in bank:
        slot = next_slot(day, taken)
        if slot is None:
            break
        taken.add(slot.strftime("%Y-%m-%d %H"))
        at = slot.astimezone(timezone.utc).strftime("%Y-%m-%dT%H:%M:%S.000Z")
        try:
            create(accid, cap, at, "Diskusi & Tanya")
            cnt += 1
            total += 1
            print(f"  ✅ {slot.strftime('%d/%m %H:00')} | {cap[:55].replace(chr(10),' ')}")
        except Exception as e:
            print(f"  ❌ {e}")
    print(f"  → {who}: {cnt}")
print(f"\n📊 Total konten pertanyaan: {total}")
