#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Ganti media 2 jadwal video TS Law (IG + FB, 9 Okt 2026) ke versi 4K H.264.

Permintaan Bos 8 Okt 2026: "pastikan ukurannya ukuran 4K itu ya ke sosmed".
Versi lama: tslaw_video_pelakor_pencemaran_1008_h264.mp4 (1080x1920, 14,8 MB)
Versi baru: tslaw_video_pelakor_pencemaran_1008_4k_h264.mp4 (2160x3840, H.264)

Catatan: sumber dari Bos HEVC 4K — HEVC 75 MB ditolak Repliz ("Video download failed"),
jadi di-encode ulang ke H.264 2160x3840 (kualitas tetap 4K, codec aman).

Pakai: python3 swap_tslaw_video_4k.py        (dry run)
       python3 swap_tslaw_video_4k.py --run  (eksekusi)
"""
import sys, json, subprocess, urllib.request

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

IDS = {"IG": "6ac7113e411e0d4964af960e", "FB": "6ac7113f5ded47bb80af2466"}
IMG = "https://mantapserver.tail3947bb.ts.net/openclaw-img/"
NEW_FN = "tslaw_video_pelakor_pencemaran_1008_4k_h264.mp4"
NEW_URL = IMG + NEW_FN
OLD_FN = "tslaw_video_pelakor_pencemaran_1008_h264.mp4"
MODE = "run" if "--run" in sys.argv else "dry"

codes = []
for extra in ([], ["--resolve", "mantapserver.tail3947bb.ts.net:443:103.84.155.153"],
              ["--resolve", "mantapserver.tail3947bb.ts.net:443:103.84.155.217"]):
    r = subprocess.run(["curl", "-s", "-o", "/dev/null", "-w", "%{http_code}",
                        "--max-time", "60", "-I"] + extra + [NEW_URL], capture_output=True, text=True)
    codes.append(r.stdout.strip())
print("media 4K HEAD:", codes)
if any(c != "200" for c in codes):
    sys.exit(f"MEDIA 4K TIDAK 200 di semua jalur {codes} -> batal")

cl = get_client()
for label, sid in IDS.items():
    j = cl.get_schedule(sid)
    m = (j.get("medias") or [{}])[0]
    print(f"\n{label} {sid}: sekarang {m.get('url','').split('/')[-1]} | scheduleAt {j.get('scheduleAt')} | {j.get('status')}")
    if NEW_FN in (m.get("url") or ""):
        print("  SKIP — sudah versi 4K")
        continue
    if MODE != "run":
        print(f"  [DRY] PUT medias -> {NEW_FN}")
        continue
    res = cl.update_schedule(sid, {"medias": [{"url": NEW_URL, "type": "video", "alt": NEW_FN[:-4]}]})
    back = cl.get_schedule(sid)
    bm = (back.get("medias") or [{}])[0]
    print(f"  PUT ok | baca-balik: {back.get('status')} {back.get('type')} | {bm.get('url','').split('/')[-1]} "
          f"| {bm.get('type')} | alt={bm.get('alt')} | scheduleAt {back.get('scheduleAt')}")
