#!/usr/bin/env python3
"""Post StudioSoft batch ss_batch_20260716 via Repliz (Threads nested + FB album + LinkedIn)."""
import json, sys
sys.path.insert(0, '/home/mantapman/.hermes/profiles/atun/workspace')
from repliz_client import ReplizClient, ACC

client = ReplizClient()

COVER = "https://studiosoft.id/wp-content/uploads/2026/07/01_cover-33.png"
SLIDES = [
    "https://studiosoft.id/wp-content/uploads/2026/07/01_cover-33.png",
    "https://studiosoft.id/wp-content/uploads/2026/07/slide_02-15.png",
    "https://studiosoft.id/wp-content/uploads/2026/07/slide_03-15.png",
    "https://studiosoft.id/wp-content/uploads/2026/07/slide_04-15.png",
    "https://studiosoft.id/wp-content/uploads/2026/07/slide_05-15.png",
    "https://studiosoft.id/wp-content/uploads/2026/07/slide_06-15.png",
    "https://studiosoft.id/wp-content/uploads/2026/07/slide_07-15.png",
]

THREADS_ACC = ACC.STUDIOSOFT_THREADS
FB_ACC = ACC.STUDIOSOFT_FB
LI_ACC = ACC.STUDIOSOFT_LINKEDIN

# Schedule Aug 11, 2026 (WIB 08:00 / 08:03 / 08:06) = UTC 01:00 / 01:03 / 01:06
THREADS_AT = "2026-08-11T01:00:00.000Z"
FB_AT = "2026-08-11T01:03:00.000Z"
LI_AT = "2026-08-11T01:06:00.000Z"

# ---- Threads caption (max 500 char) ----
threads_main = (
    "Hari ini kita bahas digital marketing strategy yang bisa langsung dipakai bisnis Anda! "
    "Dari optimasi website, konten, sampai cara membaca data — semuanya saling terhubung "
    "dan bisa dimulai pelan-pelan.\n\n"
    "Tim StudioSoft sudah merangkumnya jadi langkah praktis. Yuk simak, lalu terapkan satu per satu.\n\n"
    "Menurut Anda, bagian mana yang paling sulit diterapkan di bisnis? Yuk diskusi di kolom komentar.\n\n"
    "studiosoft.id"
)
threads_reply1 = (
    "Langkah pertama yang paling sering diabaikan? Pastikan website Anda bisa dibuka cepat di HP. "
    "Kalau lambat, pengunjung langsung kabur sebelum lihat isinya.\n\n"
    "Ada pengalaman serupa soal website yang bikin calon customer kabur? Ceritakan di kolom komentar ya. 👇"
)
threads_reply2 = (
    "Banyak bisnis fokus bikin konten, tapi lupa pantau datanya. Padahal dari data kita tahu "
    "mana yang berhasil dan mana yang perlu diperbaiki.\n\n"
    "Menurut Anda, lebih penting mana: banyak konten atau data yang akurat? Share pendapatmu!"
)

# ---- FB caption (2 paragraf + hashtags) ----
fb_caption = (
    "Hari ini kita bahas strategi digital marketing yang bisa langsung diterapkan buat bisnis Anda! 🚀 "
    "Dari optimasi website sampai social media strategy — tim StudioSoft sudah merangkum tips dan trik "
    "yang teruji di lapangan, lengkap dengan langkah praktis yang tidak perlu modal besar.\n\n"
    "Intinya: bisnis yang konsisten mengelola kehadiran digitalnya akan jauh lebih mudah ditemukan "
    "calon pelanggan. Mau mulai dari mana pun, yang penting mulai sekarang — jangan tunda lagi.\n\n"
    "Menurut Anda, tantangan terbesar dalam menerapkan digital marketing untuk bisnis saat ini apa? "
    "Yuk diskusi di kolom komentar.\n\n"
    "studiosoft.id\n\n"
    "#DigitalMarketing #StudioSoft #SEO #Branding #BisnisSurabaya #MarketingDigital #StrategiBisnis"
)

# ---- LinkedIn caption (1 paragraf) ----
li_caption = (
    "Perjalanan digitalisasi bisnis tidak harus rumit. Kuncinya ada di konsistensi: website yang cepat, "
    "konten yang relevan, dan keputusan yang didasari data. Ketiganya bekerja sama untuk membangun "
    "kredibilitas dan menarik pelanggan yang tepat.\n\n"
    "Tim StudioSoft telah membantu banyak bisnis — dari UMKM sampai instansi — menyusun strategi digital "
    "yang terukur. Pertanyaan kuncinya: sudah siapkah bisnis Anda beradaptasi dengan perubahan perilaku "
    "konsumen yang semakin digital?\n\n"
    "studiosoft.id"
)

def make_media(url, alt):
    return {"url": url, "type": "image", "alt": alt}

results = {}

# 1. Threads: main (image cover) + 2 nested text replies
try:
    medias = [make_media(COVER, "01_cover.png")]
    r = client.create_schedule(THREADS_ACC, threads_main, THREADS_AT,
                               title="", type_="image", medias=medias, topic="")
    sid = r.get("scheduleId") or r.get("_id") or r.get("id") or "unknown"
    results["threads_ss_main"] = sid
    print(f"✅ Threads main: {sid}")

    r1 = client.create_schedule(THREADS_ACC, threads_reply1, THREADS_AT,
                                title="", type_="text")
    s1 = r1.get("scheduleId") or r1.get("_id") or r1.get("id") or "unknown"
    results["threads_ss_reply1"] = s1
    print(f"✅ Threads reply1: {s1}")

    r2 = client.create_schedule(THREADS_ACC, threads_reply2, THREADS_AT,
                                title="", type_="text")
    s2 = r2.get("scheduleId") or r2.get("_id") or r2.get("id") or "unknown"
    results["threads_ss_reply2"] = s2
    print(f"✅ Threads reply2: {s2}")
except Exception as e:
    print(f"❌ Threads error: {e}")
    import traceback; traceback.print_exc()

# 2. FB: album with 7 slides
try:
    fb_medias = [make_media(u, f"slide_{i}.png") for i, u in enumerate(SLIDES, 1)]
    r = client.create_schedule(FB_ACC, fb_caption, FB_AT,
                               title="", type_="album", medias=fb_medias, topic="")
    sid = r.get("scheduleId") or r.get("_id") or r.get("id") or "unknown"
    results["fb_ss"] = sid
    print(f"✅ FB album: {sid}")
except Exception as e:
    print(f"❌ FB error: {e}")
    import traceback; traceback.print_exc()

# 3. LinkedIn: 1 image (cover)
try:
    li_medias = [make_media(COVER, "01_cover.png")]
    r = client.create_schedule(LI_ACC, li_caption, LI_AT,
                               title="", type_="image", medias=li_medias, topic="")
    sid = r.get("scheduleId") or r.get("_id") or r.get("id") or "unknown"
    results["linkedin_ss"] = sid
    print(f"✅ LinkedIn: {sid}")
except Exception as e:
    print(f"❌ LinkedIn error: {e}")
    import traceback; traceback.print_exc()

print("\n=== RESULTS ===")
print(json.dumps(results, indent=2))
