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

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

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

# ---- Threads caption (max 500 char) ----
threads_main = (
    "Portofolio online itu kunci kepercayaan klien! Banyak bisnis punya jasa bagus "
    "tapi karya terbaiknya jarang ditampilkan.\n\n"
    "Padahal klien butuh bukti, bukan janji. Tampilkan karya terbaik Anda di portofolio "
    "yang rapi dan profesional.\n\n"
    "studiosoft.id\n\n"
    "Menurut Anda, seberapa penting portofolio dibanding harga?"
)
threads_reply1 = (
    "Faktanya, klien cenderung memilih yang sudah terbukti lewat portofolio, "
    "bukan sekadar harga murah. Bukti nyata selalu mengalahkan janji. 🙌"
)
threads_reply2 = (
    "Punya banyak project? Pilih yang paling relevan dan hasil terbaiknya. "
    "Yuk susun portofolio online bareng StudioSoft — konsultasi gratis! studiosoft.id"
)

# ---- FB caption (2 paragraf + hashtags + diskusi hook) ----
fb_caption = (
    "Hari ini kita bahas kenapa portofolio online itu kunci kepercayaan klien! 🚀\n\n"
    "Banyak bisnis punya jasa bagus tapi sayangnya karya terbaiknya tidak pernah ditampilkan. "
    "Padahal klien butuh bukti, bukan hanya janji. Dengan portofolio online yang rapi dan profesional, "
    "kepercayaan terbangun lebih cepat.\n\n"
    "Yuk konsultasi gratis bareng tim StudioSoft!\n\n"
    "studiosoft.id\n\n"
    "#PortofolioOnline #StudioSoft #WebDeveloper #Branding #BisnisSurabaya #DigitalMarketing\n\n"
    "Kalau harus pilih satu platform untuk fokus tahun ini, pilih yang mana — dan kenapa?"
)

# ---- LinkedIn caption (1 paragraf) ----
li_caption = (
    "Portofolio online bukan sekadar galeri karya — ini jembatan kepercayaan antara Anda dan calon klien. "
    "Di era digital, klien melakukan riset sebelum memutuskan bekerja sama, dan portofolio yang rapi, relevan, "
    "dan mudah diakses jadi pembeda utama.\n\n"
    "Banyak bisnis dengan kualitas jasa tinggi kalah bersaing hanya karena karya terbaiknya tidak pernah "
    "ditampilkan secara profesional. Mulai dari desain, proses, hingga hasil nyata — semua bisa jadi bukti "
    "yang membangun trust.\n\n"
    "Bersama StudioSoft, kami bantu Anda membangun website portofolio yang membangun kepercayaan dan "
    "mengubah pengunjung menjadi klien.\n\n"
    "studiosoft.id\n\n"
    "Pertanyaan kontroversial: apakah bisnis kecil benar-benar butuh iklan berbayar, atau cukup organik dulu?"
)

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"✅ 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"✅ 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"✅ 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"] = 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"] = 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))

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