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

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

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

# ---- Threads caption (max 500 char) ----
threads_main = (
    "Bisnis digital yang bertahan bukan yang paling ramai, tapi yang paling konsisten dan terukur. "
    "Banyak yang sibuk bikin konten tanpa arah, padahal setiap langkah bisa dioptimalkan dari data.\n\n"
    "Dari SEO yang mendatangkan pembeli, sampai branding yang bikin dipercaya — semuanya bisa berjalan "
    "bareng kalau strateginya benar. Mulai dari ukuran yang jelas, lalu perbaiki terus.\n\n"
    "studiosoft.id\n\n"
    "Menurut Anda, apa yang paling sering bikin bisnis gagal di digital: kurang konsisten atau kurang ukuran?"
)
threads_reply1 = (
    "Konsistensi jauh lebih penting daripada sekadar sering nge-post. Konsisten artinya punya arah, "
    "pesan yang sama, dan pakem yang jelas — bukan asal ramai tiap hari. 🙌"
)
threads_reply2 = (
    "Terus terang, banyak yang menyepelekan data. Padahal dari situ kita tahu mana yang layak "
    "diperbesar dan mana yang harus dihentikan. Yuk mulai dari strategi yang terukur — konsultasi "
    "gratis bareng StudioSoft! studiosoft.id"
)

# ---- FB caption (2 paragraf + hashtags + diskusi hook) ----
fb_caption = (
    "Hari ini kita bahas kenapa konsistensi dan pengukuran jadi kunci bisnis digital yang bertahan! 🚀\n\n"
    "Banyak bisnis sibuk membuat konten setiap hari tapi tanpa arah yang jelas. Padahal yang membedakan "
    "bisnis yang tumbuh dengan yang mandek adalah konsistensi yang terukur: SEO yang mendatangkan trafik, "
    "branding yang membangun kepercayaan, dan social media yang konsisten membangun audiens. Semua itu "
    "bisa dijalankan bareng kalau strateginya benar dan diukur hasilnya.\n\n"
    "Yuk mulai dari langkah yang kecil tapi terarah. Konsultasi gratis bareng tim StudioSoft!\n\n"
    "studiosoft.id\n\n"
    "#DigitalMarketing #StudioSoft #SEO #Branding #Konsistensi #BisnisSurabaya #MarketingDigital\n\n"
    "Jujur saja, banyak bisnis gagal bukan karena produknya jelek, tapi karena tidak pernah konsisten dan "
    "tidak pernah mengukur. Pedas tapi nyata. Setuju atau tidak?"
)

# ---- LinkedIn caption (1 paragraf) ----
li_caption = (
    "Bisnis digital yang bertahan bukan yang paling ramai, melainkan yang paling konsisten dan terukur. "
    "Banyak tim sibuk memproduksi konten tanpa strategi yang jelas — SEO diabaikan, branding kurang "
    "diperhatikan, dan hasilnya tidak pernah dievaluasi.\n\n"
    "Padahal dengan pendekatan yang terukur, setiap langkah bisa dioptimalkan: dari memahami audiens, "
    "memilih kanal yang tepat, hingga mengukur dampaknya secara nyata. Konsistensi yang disertai "
    "pengukuran selalu mengalahkan sekadar ramai tapi tidak terarah.\n\n"
    "Bersama StudioSoft, kami bantu bisnis Anda membangun strategi digital yang konsisten dan berdampak.\n\n"
    "studiosoft.id\n\n"
    "Menurut Anda, mana yang lebih menentukan keberhasilan digital marketing: konsistensi atau ketepatan ukuran?"
)

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_20260730_result.json", "w") as f:
    json.dump(results, f, indent=2, ensure_ascii=False)
