#!/usr/bin/env python3
"""Post ss_batch_20260729 — StudioSoft batch (cover + 7 slides).
Threads (cover + 2 nested) + FB (album 7 slides) + LinkedIn (1 image).
Schedule: 2026-08-25 08:00 / 08:03 / 08:06 WIB = UTC 01:00 / 01:03 / 01:06.
"""
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-46.png"
SLIDES = [
    "https://studiosoft.id/wp-content/uploads/2026/07/01_cover-46.png",
    "https://studiosoft.id/wp-content/uploads/2026/07/slide_02-28.png",
    "https://studiosoft.id/wp-content/uploads/2026/07/slide_03-28.png",
    "https://studiosoft.id/wp-content/uploads/2026/07/slide_04-28.png",
    "https://studiosoft.id/wp-content/uploads/2026/07/slide_05-28.png",
    "https://studiosoft.id/wp-content/uploads/2026/07/slide_06-28.png",
    "https://studiosoft.id/wp-content/uploads/2026/07/slide_07-28.png",
]

THREADS_ACC = ACC.STUDIOSOFT_THREADS  # 6a335b9ec5ff4ce3a3225c2a
FB_ACC = ACC.STUDIOSOFT_FB            # 6a334952c5ff4ce3a3225941
LI_ACC = ACC.STUDIOSOFT_LINKEDIN      # 6a334c49c5ff4ce3a32259c9

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

# ---- Threads caption (max 500 char) ----
threads_main = (
    "Digital marketing terbaik dimulai dari data, bukan asumsi. Banyak UMKM asal jalan "
    "tanpa ukuran yang jelas, padahal setiap langkah bisa diukur dan dioptimalkan.\n\n"
    "Dari SEO sampai social media, mulai dari yang paling relevan dengan bisnis Anda. "
    "Konsisten dan terukur lebih baik daripada banyak tapi acak.\n\n"
    "studiosoft.id\n\n"
    "Strategi digital marketing apa yang paling berhasil untuk bisnis Anda sejauh ini?"
)
threads_reply1 = (
    "Faktanya, klien dan pembeli makin cerdas. Mereka mencari bukti, membandingkan, "
    "baru memutuskan. Bisnis yang tampil konsisten di digital selalu selangkah lebih dekat. 🙌"
)
threads_reply2 = (
    "Mulai kecil, ukur, lalu perbaiki. Itu kunci. Yuk susun strategi digital yang terukur "
    "bareng StudioSoft — konsultasi gratis! studiosoft.id"
)

# ---- FB caption (2 paragraf + hashtags + diskusi hook) ----
fb_caption = (
    "Hari ini kita bahas kenapa data jadi fondasi digital marketing yang sukses! 🚀\n\n"
    "Banyak bisnis berjalan tanpa ukuran yang jelas, padahal setiap aktivitas digital bisa diukur "
    "dan dioptimalkan. Mulai dari SEO yang mendatangkan trafik, konten yang membangun kepercayaan, "
    "hingga strategi social media yang konsisten — semua harus berbasis data, bukan sekadar asumsi.\n\n"
    "Yuk konsultasi gratis bareng tim StudioSoft!\n\n"
    "studiosoft.id\n\n"
    "#DigitalMarketing #StudioSoft #SEO #DataDriven #BisnisSurabaya #MarketingDigital\n\n"
    "Jujur, banyak UMKM gagal bukan karena produk jelek, tapi karena tidak pernah serius di digital. Pedas tapi nyata. Setuju?"
)

# ---- LinkedIn caption (1 paragraf) ----
li_caption = (
    "Digital marketing yang sukses berawal dari data, bukan tebakan. Setiap klik, trafik, dan konversi "
    "adalah sinyal yang bisa diolah menjadi keputusan yang lebih baik. Sayangnya, banyak bisnis masih "
    "berjalan tanpa ukuran yang jelas — konten diposting tanpa strategi, SEO diabaikan, dan social media "
    "hanya jadi rutinitas tanpa arah.\n\n"
    "Padahal dengan pendekatan berbasis data, setiap langkah bisa dioptimalkan: dari memahami audiens, "
    "memilih kanal yang tepat, hingga mengukur hasil secara nyata. Konsistensi plus pengukuran selalu "
    "mengalahkan sekadar ramai tapi tidak terarah.\n\n"
    "Bersama StudioSoft, kami bantu bisnis Anda membangun strategi digital yang terukur dan berdampak.\n\n"
    "studiosoft.id\n\n"
    "Strategi digital marketing apa yang paling berhasil untuk bisnis Anda sejauh ini?"
)

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_main"] = sid
    print(f"OK 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_reply1"] = s1
    print(f"OK 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_reply2"] = s2
    print(f"OK Threads reply2: {s2}")
except Exception as e:
    print(f"FAIL Threads error: {e}")

# 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"] = sid
    print(f"OK FB album: {sid}")
except Exception as e:
    print(f"FAIL FB error: {e}")

# 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"] = sid
    print(f"OK LinkedIn: {sid}")
except Exception as e:
    print(f"FAIL LinkedIn error: {e}")

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

with open("post_ss_20260729_result.json", "w") as f:
    json.dump(results, f, indent=2, ensure_ascii=False)
