#!/usr/bin/env python3
"""Post StudioSoft batch ss_batch_20260717 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-34.png"
SLIDES = [
    "https://studiosoft.id/wp-content/uploads/2026/07/01_cover-34.png",
    "https://studiosoft.id/wp-content/uploads/2026/07/slide_02-16.png",
    "https://studiosoft.id/wp-content/uploads/2026/07/slide_03-16.png",
    "https://studiosoft.id/wp-content/uploads/2026/07/slide_04-16.png",
    "https://studiosoft.id/wp-content/uploads/2026/07/slide_05-16.png",
    "https://studiosoft.id/wp-content/uploads/2026/07/slide_06-16.png",
    "https://studiosoft.id/wp-content/uploads/2026/07/slide_07-16.png",
]

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

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

# ---- Threads caption (max 500 char) ----
threads_main = (
    "Hari ini kita bahas satu hal yang sering diabaikan dalam digital marketing: keputusan berbasis data. "
    "Banyak bisnis berjalan pakai feeling, padahal data bisa menunjukkan apa yang benar-benar bekerja.\n\n"
    "Mulai dari pola kunjungan website sampai konten yang paling banyak dibaca — semuanya bisa dipetakan "
    "dan dipakai untuk memperbaiki strategi.\n\n"
    "Pernah mengubah strategi setelah melihat datanya? Ceritakan di kolom komentar ya.\n\n"
    "studiosoft.id"
)
threads_reply1 = (
    "Data tidak harus rumit. Cukup mulai dengan melihat dari mana pengunjung website Anda berasal "
    "dan halaman apa yang paling lama mereka baca.\n\n"
    "Dari situ, keputusan konten dan budget jadi jauh lebih terarah. Menurut Anda, mana yang lebih "
    "sulit: mengumpulkan data atau membaca datanya?"
)
threads_reply2 = (
    "Struktur bisnis yang sehat dibangun dari kebiasaan mencatat dan mengevaluasi, bukan sekadar "
    "menebak. Perubahan kecil yang konsisten bisa berdampak besar.\n\n"
    "Pernah ada keputusan bisnis yang ternyata salah karena tidak dicek datanya? Yuk berbagi di komentar. 👇"
)

# ---- FB caption (2 paragraf + hashtags) ----
fb_caption = (
    "Hari ini kita bahas pentingnya mengambil keputusan bisnis berbasis data! 📊 Banyak bisnis "
    "berjalan mengandalkan intuisi semata, padahal data dari website dan media sosial bisa jadi "
    "panduan yang lebih akurat untuk menentukan langkah berikutnya.\n\n"
    "Tidak perlu tools mahal — mulai dari angka sederhana seperti siapa yang mengunjungi website "
    "Anda, dari mana mereka datang, dan konten apa yang paling disukai. Dengan konsistensi, "
    "strategi digital Anda akan semakin tajam dan hasilnya lebih terukur.\n\n"
    "Apakah bisnis Anda sudah terbiasa mengambil keputusan berdasarkan data, atau masih "
    "mengandalkan feeling? Yuk diskusi di kolom komentar.\n\n"
    "studiosoft.id\n\n"
    "#DigitalMarketing #StudioSoft #DataBased #SEO #Branding #BisnisSurabaya #StrategiBisnis"
)

# ---- LinkedIn caption (1 paragraf, angle opini profesional) ----
li_caption = (
    "Bold statement: keputusan bisnis yang hanya mengandalkan intuisi semakin berisiko di era digital. "
    "Bukan berarti intuisi tidak penting — tapi ketika data tersedia, mengabaikannya sama saja "
    "menebak dalam kegelapan sambil punya senter di tangan.\n\n"
    "Website, media sosial, dan kampanye iklan menghasilkan banyak sinyal: siapa yang datang, "
    "dari mana, apa yang mereka baca, dan kapan mereka berkonversi. Bisnis yang mau mencatat, "
    "membaca, dan mengevaluasi sinyal ini akan jauh lebih cepat beradaptasi daripada kompetitor "
    "yang hanya mengandalkan perkiraan.\n\n"
    "Di StudioSoft kami membantu banyak bisnis — dari UMKM hingga instansi — menyusun strategi "
    "digital yang berlandaskan data. Pertanyaannya: apakah bisnis Anda siap berpindah dari "
    "intuisi ke keputusan yang terukur?\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))

# Save results to a temp file for logging
with open("/tmp/post_ss_batch_20260717_result.json", "w") as f:
    json.dump({"schedule_times": {
        "threads_ss_main": f"{THREADS_AT} (08:00 WIB) - image cover + 2 nested text",
        "fb_ss": f"{FB_AT} (08:03 WIB) - album 7 slides",
        "linkedin_ss": f"{LI_AT} (08:06 WIB) - image 1 cover"
    }, "repliz_ids": results}, f, indent=2, ensure_ascii=False)
print("\nResult saved to /tmp/post_ss_batch_20260717_result.json")
