#!/usr/bin/env python3
"""Post StudioSoft batch ss_batch_20260720 via Repliz (Threads nested + FB album + LinkedIn).
Topic (theme 20): Analytics — Pantau Pengunjung Website (Google Analytics: dari mana visitor, apa yang mereka klik)."""
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-37.png"
SLIDES = [
    "https://studiosoft.id/wp-content/uploads/2026/07/01_cover-37.png",
    "https://studiosoft.id/wp-content/uploads/2026/07/slide_02-19.png",
    "https://studiosoft.id/wp-content/uploads/2026/07/slide_03-19.png",
    "https://studiosoft.id/wp-content/uploads/2026/07/slide_04-19.png",
    "https://studiosoft.id/wp-content/uploads/2026/07/slide_05-19.png",
    "https://studiosoft.id/wp-content/uploads/2026/07/slide_06-19.png",
    "https://studiosoft.id/wp-content/uploads/2026/07/slide_07-19.png",
]

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

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

# ---- Threads caption (max 500 char) ----
threads_main = (
    "Website yang bagus itu bukan soal desain saja — tapi soal tahu apa yang dilakukan "
    "pengunjung di dalamnya. Analytics membantu Anda melihat dari mana mereka datang dan "
    "halaman mana yang paling mereka minati.\n\n"
    "Dengan data ini, keputusan marketing tidak lagi menebak-nebak. Semua bisa diukur, "
    "dianalisis, lalu dioptimalkan.\n\n"
    "Apakah Anda sudah rutin memantau analytics website Anda? Atau masih jarang membukanya? "
    "Ceritakan di komentar ya.\n\n"
    "studiosoft.id"
)
threads_reply1 = (
    "Mulai dari hal sederhana: pasang Google Analytics dan pelajari tiga metrik dasar — "
    "jumlah pengunjung, dari mana mereka datang, dan halaman mana yang paling banyak "
    "dikunjungi.\n\n"
    "Tiga angka ini sudah bisa memberi gambaran besar tentang perilaku audiens Anda. "
    "Metrik apa yang paling Anda perhatikan saat lihat laporan website?"
)
threads_reply2 = (
    "Traffic naik belum tentu konversi naik. Analytics membantu Anda melihat di titik mana "
    "pengunjung berhenti atau keluar — di sinilah peluang optimasi terbuka lebar.\n\n"
    "Apakah Anda lebih fokus mengejar jumlah pengunjung atau kualitas konversi? Yuk "
    "bagikan pendapat Anda di kolom komentar. 👇"
)

# ---- FB caption (2 paragraf + hashtags) ----
fb_caption = (
    "Hari ini kita bahas pentingnya analytics untuk website! 📊 Banyak pemilik bisnis "
    "membuat website lalu melupakannya — padahal itu seperti punya toko tanpa mencatat "
    "siapa yang masuk dan apa yang mereka lihat. Dengan Google Analytics, Anda bisa tahu "
    "dari mana pengunjung datang, halaman mana yang paling diminati, dan di titik mana "
    "mereka berhenti.\n\n"
    "Data ini bukan sekadar angka — ini kunci untuk mengambil keputusan marketing yang "
    "tepat sasaran. Daripada menebak-nebak, biarkan data berbicara: optimasi konten, "
    "perbaiki halaman yang paling banyak dikunjungi, dan fokus pada sumber traffic yang "
    "paling menguntungkan. Website yang dikelola berbasis data akan jauh lebih efektif "
    "mendukung pertumbuhan bisnis.\n\n"
    "Apakah Anda sudah rutin memantau analytics website bisnis Anda? Metrik apa yang "
    "paling Anda perhatikan? Yuk diskusi di kolom komentar.\n\n"
    "studiosoft.id\n\n"
    "#DigitalMarketing #StudioSoft #Analytics #GoogleAnalytics #DataMarketing #BisnisSurabaya #MarketingDigital"
)

# ---- LinkedIn caption (1 paragraf, angle opini profesional) ----
li_caption = (
    "Bold statement: website tanpa analytics itu seperti berlayar tanpa kompas — Anda "
    "bergerak, tapi tidak tahu ke mana arahnya.\n\n"
    "Banyak bisnis menghabiskan biaya besar untuk membuat website, lalu meninggalkannya "
    "tanpa pernah memantau perilaku pengunjung. Padahal data analytics menyimpan jawaban "
    "atas pertanyaan paling penting: dari mana pelanggan datang, konten apa yang mereka "
    "butuhkan, dan mengapa mereka pergi tanpa membeli.\n\n"
    "Keputusan marketing yang berbasis data jauh lebih akurat daripada intuisi semata. "
    "Website yang sehat bukan hanya yang tampil indah, tapi yang terus diukur dan "
    "dioptimalkan dari data pengunjungnya.\n\n"
    "Di StudioSoft kami membantu bisnis membaca dan memanfaatkan data analytics untuk "
    "pertumbuhan yang terukur. Seberapa data-driven website Anda saat ini?\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_20260720_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_20260720_result.json")
