#!/usr/bin/env python3
"""Update caption video kisah story Pak Otto (IG+TikTok+FB) dengan caption dari Bos."""
import sys, json, urllib.request
sys.path.insert(0, "/home/mantapman/.hermes/profiles/atun/workspace")
from repliz_client import HEADERS, BASE

CAP = """Dari pikulan kayu, langkah kaki menyusuri jalanan, sampai akhirnya punya pintu ruko sendiri.

Awalnya nggak gampang. Berangkat dari resep dapur ibu di Semarang, melangkah jauh merantau hingga akhirnya membuka tempat sendiri di Sidoarjo. Bagi Pak Otto, setiap mangkok soto bukan cuma soal jualan, tapi tentang doa, rasa syukur, dan pelanggan pertama yang percaya.

Singgah yuk, nikmati hangatnya kuah soto ayam kampung asli di Warung Pak Otto! 🍲✨

📍 Jl. Graha Anggrek Mas No. C-16, Ruko Pagerwojo, Buduran, Sidoarjo

⏰ Buka Setiap Hari: 06.00 - 21.00 WIB

#SotoPakOtto #SotoSemarang #KulinerSidoarjo #CeritaRasa #PerjalananUsaha #DariPikulanKeRuko #KulinerJawaTimur"""

# cari 3 jadwal kisah story
TARGETS = []
for p in range(1, 80):
    raw = urllib.request.Request(f"{BASE}/public/schedule?page={p}&limit=100", headers=HEADERS)
    with urllib.request.urlopen(raw, timeout=30) as r:
        docs = json.load(r)["docs"]
    for d in docs:
        if (d.get("status") or "").lower() == "pending":
            title = d.get("title") or ""
            desc = d.get("description") or ""
            if "Kisah Story" in title or "soto_kisah_story_01" in desc or "kisah dari dapur" in desc.lower():
                TARGETS.append(d)

print(f"jadwal kisah story ditemukan: {len(TARGETS)}")
for d in TARGETS:
    payload = {
        "accountId": d.get("accountId"),
        "title": d.get("title", ""),
        "description": CAP,
        "topic": d.get("topic", ""),
        "type": d.get("type", ""),
        "medias": d.get("medias") or [],
        "scheduleAt": d.get("scheduleAt"),
        "replies": d.get("replies") or [],
    }
    req = urllib.request.Request(f"{BASE}/public/schedule/{d['id']}",
                                 data=json.dumps(payload).encode(),
                                 headers={**HEADERS, "Content-Type": "application/json"},
                                 method="PUT")
    try:
        with urllib.request.urlopen(req, timeout=30) as r:
            print(f"  ✅ {d.get('scheduleAt')} | {(d.get('account') or {}).get('name','?')} | caption updated")
    except Exception as e:
        print(f"  ❌ {d['id']}: {e}")
