#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""TS Law — story_13 juga gagal di Facebook 16 Okt (503). Pasang di FB 20 Okt 20:00 WIB."""
import json
import sys
import urllib.parse
import urllib.request

sys.path.insert(0, "/home/mantapman/.hermes/profiles/atun/workspace")
from repliz_client import HEADERS, BASE, get_client  # noqa: E402

FB = "6a3b41d1c5ff4ce3a32753e8"
FN = "tslaw_story_13.mp4"
URL = "https://mantapserver.tail3947bb.ts.net/openclaw-img/" + FN
AT = "2026-10-20T13:00:00.000Z"
MODE = "run" if "--run" in sys.argv else "dry"


def semua_jadwal():
    docs, page = [], 1
    while True:
        q = urllib.parse.urlencode({"page": page, "limit": 100})
        req = urllib.request.Request(f"{BASE}/public/schedule?{q}", headers=HEADERS)
        with urllib.request.urlopen(req, timeout=60) as r:
            d = json.load(r)
        b = d.get("docs", d.get("data", []))
        docs += b
        if not d.get("hasNextPage") or not b:
            break
        page += 1
    return docs


cl = get_client()
docs = semua_jadwal()
ada = [s for s in docs if str(s.get("accountId")) == FB and FN in json.dumps(s) and s.get("status") != "error"]
if ada:
    print("SKIP: sudah ada", ada[0].get("_id"), ada[0].get("scheduleAt"), ada[0].get("status"))
    sys.exit(0)
print(("[DRY] " if MODE != "run" else "✅ ") + f"FB story {FN} @ {AT}")
if MODE == "run":
    res = cl.create_schedule(FB, "", AT, title="Story TS Law tslaw_story_13.mp4",
                             topic="Story harian TS Law (video slides konten lama)",
                             type_="story", medias=[{"url": URL, "type": "video", "alt": FN}], replies=[])
    sid = res.get("scheduleId") or res.get("_id")
    b = cl.get_schedule(sid)
    print("dibuat", sid, b.get("status"), b.get("scheduleAt"), b.get("type"),
          str((b.get("medias") or [{}])[0].get("url")).split("/")[-1])
