#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Dojo Ksatria — Reels IG Scheduler BATCH 2 (video 10-20).
Batch 1 (dojo_01-09) sudah terjadwal 25/08-02/09. Batch ini: 03/09-13/09, 09:00 WIB.
Caption SEMUA UNIK (no redundant konten — aturan Bos 21/08).
Video & thumbnail dari server OpenClaw.
"""
import json, os, sys
from datetime import datetime, timezone, timedelta

sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from repliz_client import ReplizClient, ACC

WIB = timezone(timedelta(hours=7))
ROOT = os.path.dirname(os.path.abspath(__file__))
LOG_FILE = os.path.join(ROOT, "dojo_ksatria_log.txt")
BASE_URL = "https://mantapserver.tail3947bb.ts.net"

HASHTAG = ("#DojoKsatria #SenseiErwinSyauridhani #KarateSurabaya #KarateKids "
           "#KarateIndonesia #MemoriLatihan #LatihanKarate #KarateAnak "
           "#Ketintang #Surabaya #Oss")

# Video 10-20 → 11 caption UNIK (beda dari batch 1)
CAPTIONS = [
    # dojo_10
    "Senangnya latihan karate bareng teman-teman! 😄🥋\n\n"
    "Suasana dojo yang penuh tawa tapi tetap disiplin — itu Dojo Ksatria, Balai RW 02 Ketintang Baru. Belajar teknik sambil tumbuh bareng! 💪\n\n" + HASHTAG,
    # dojo_11
    "Fokus. Disiplin. Semangat. Tiga kata yang selalu kami pegang di Dojo Ksatria. 🥋\n\n"
    "Setiap latihan di Balai RW 02, Ketintang Baru adalah langkah kecil jadi pribadi yang lebih baik. Terus berlatih, terus berkembang! 🔥\n\n" + HASHTAG,
    # dojo_12
    "Latihan sore yang penuh energi! ⚡\n\n"
    "Dari pemanasan sampai latihan inti — semua dilakukan dengan sepenuh hati di Dojo Ksatria. Yang penting konsisten, hasil pasti nyusul! 😊\n\n" + HASHTAG,
    # dojo_13
    "Kuat fisik, kuat mental — itulah yang ditanamkan Sensei Erwin Syauridhani di setiap latihan. 💪🥋\n\n"
    "Karate mengajarkan kami: disiplin itu kunci. Ini suasana latihan kami di Ketintang Baru!\n\n" + HASHTAG,
    # dojo_14
    "Kebersamaan di dojo bikin latihan terasa ringan. 🤝\n\n"
    "Saling koreksi, saling semangat, saling jaga — itulah keluarga Dojo Ksatria. Balai RW 02, Ketintang Baru, selalu hangat! 🥋\n\n" + HASHTAG,
    # dojo_15
    "KarateKids Dojo Ksatria lagi semangat latihan! 🌟🥋\n\n"
    "Belajar disiplin sejak dini, tumbuh jadi anak yang percaya diri. Masa depan karate Indonesia dimulai dari sini — Balai RW 02, Ketintang Baru! 🙌\n\n" + HASHTAG,
    # dojo_16
    "Setiap pukulan dilatih dengan hati. Setiap kuda-kuda dijaga dengan disiplin. 🥋✨\n\n"
    "Itulah yang terasa di setiap sesi latihan Dojo Ksatria. Kecil-kecil gerakannya, besar maknanya!\n\n" + HASHTAG,
    # dojo_17
    "Dari Ketintang Baru, untuk karate Indonesia! 🔥🥋\n\n"
    "Semangat Sensei Erwin Syauridhani dan para ksatria muda terus menyala. Dojo Ksatria — tempat lahirnya juara karakter! 💪\n\n" + HASHTAG,
    # dojo_18
    "Latihan karate itu investasi buat diri sendiri — dan ini investasi terbaik! 💯🥋\n\n"
    "Sehat, disiplin, dan percaya diri. Yuk mulai dari Dojo Ksatria, Balai RW 02 Ketintang Baru!\n\n" + HASHTAG,
    # dojo_19
    "Satu, dua, tiga — gerakan makin mantap! 🥋🔥\n\n"
    "Suasana latihan yang penuh semangat di Dojo Ksatria. Yang rajin latihan, gerakannya pasti naik level! 😄\n\n" + HASHTAG,
    # dojo_20
    "Oss! Salam hangat dari Dojo Ksatria. 🙏🥋\n\n"
    "Terima kasih sudah jadi bagian dari memori latihan kami di Balai RW 02, Ketintang Baru. Sampai jumpa di tatami, ksatria muda! ⚔️\n\n" + HASHTAG,
]

START_DATE = "2026-09-03"  # setelah batch 1 (25/08-02/09)
POST_TIME = "09:00"        # WIB
FIRST_VIDEO = 10           # dojo_10 .. dojo_20


def log(msg):
    line = f"{datetime.now(WIB).strftime('%Y-%m-%d %H:%M:%S')} | {msg}"
    with open(LOG_FILE, "a", encoding="utf-8") as f:
        f.write(line + "\n")
    print(line)


def main(dry=False):
    client = ReplizClient()
    vids = [f"dojo_{i:02d}.mp4" for i in range(FIRST_VIDEO, FIRST_VIDEO + len(CAPTIONS))]
    ok = fail = 0
    for i, vid in enumerate(vids):
        day = datetime.strptime(START_DATE, "%Y-%m-%d").date() + timedelta(days=i)
        at = f"{day.isoformat()}T{POST_TIME}:00+07:00"
        base = vid[:-4]
        media_url = f"{BASE_URL}/{vid}"
        thumb_url = f"{BASE_URL}/{base}_thumb.jpg"
        cap = CAPTIONS[i]

        print(f"\n📅 {at} WIB — {vid}")
        if dry:
            print(f"   [DRY] {media_url} | caption {len(cap)} char")
            ok += 1
            continue

        r = client.create_schedule(
            ACC.DOJO_KSATRIA_IG, cap, at,
            title="Reels Dojo Ksatria", topic="Karate",
            type_="video",
            medias=[{"type": "video", "url": media_url, "thumbnail": thumb_url}],
        )
        sid = r.get("scheduleId") or r.get("_id") or r.get("id")
        if sid:
            ok += 1
            log(f"✅ {vid} → {sid} | {at}")
        else:
            fail += 1
            log(f"❌ {vid} → {str(r)[:200]}")

    log(f"🏁 Batch2 selesai: {ok} OK, {fail} gagal ({'DRY' if dry else 'SCHEDULE'})")


if __name__ == "__main__":
    main(dry="--dry" in sys.argv)
