#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Verifikasi akhir 3 jadwal Threads 4 Okt 2026 dari API + dokumentasi SKIP (SS, tslaw)."""
import json, re, sys
from datetime import datetime, timedelta, timezone
sys.path.insert(0, "/home/mantapman/.hermes/profiles/atun/workspace")
from repliz_client import get_client, ACC

WIB = timezone(timedelta(hours=7))
client = get_client()
IDS = {
    "uky": "6ac1737607008e0e91afa10e",
    "tsc": "6ac1737607008e0e91afa11c",
    "das": "6ac1737607008e0e91afa123",
}
CJK = re.compile(r"[\u3000-\u30ff\u3400-\u4dbf\u4e00-\u9fff\uf900-\ufaff\uff00-\uffef]")
CTA = re.compile(r"komentar|diskusi|pendapat|tulis di|share|pengalaman|menurut|setuju|ceritakan", re.I)
URL = re.compile(r"https?://\S+")
MENTION = re.compile(r"@\w+")

print("=== VERIFIKASI JADWAL BARU ===")
for acc, sid in IDS.items():
    d = client.get_schedule(sid)
    desc = d.get("description") or ""
    dt = datetime.fromisoformat(str(d.get("scheduleAt")).replace("Z", "+00:00")).astimezone(WIB)
    tags = re.findall(r"#(\w+)", desc)
    print(f"\n--- {acc}: id={d.get('_id')} status={d.get('status')} type={d.get('type')} "
          f"jam={dt.strftime('%Y-%m-%d %H:%M')} WIB len={len(desc)} replies={len(d.get('replies') or [])} "
          f"medias={len(d.get('medias') or [])}")
    print(f"    link={bool(URL.search(desc))} cta_ekor={bool(CTA.search(desc[-170:]))} "
          f"mention={bool(MENTION.search(desc))} cjk={bool(CJK.search(desc))} "
          f"hashtag_lower={all(t == t.lower() for t in tags)}")
    print("    isi:\n" + "\n".join("      " + ln for ln in desc.split("\n")))

print("\n=== JADWAL SAME-DAY YANG MEMBUAT SS & TSLAW DI-SKIP ===")
all_docs = []
for p in range(1, 60):
    got = client.get_schedules(page=p, limit=100)
    batch = got.get("docs", [])
    if not batch:
        break
    all_docs += batch
    if len(batch) < 100:
        break
for name, aid, dom in [("studiosoft", ACC.STUDIOSOFT_THREADS, "studiosoft.id"),
                       ("tslaw", ACC.TSLAW_THREADS, "tslaw.id")]:
    same = [d for d in all_docs if d.get("accountId") == aid and str(d.get("scheduleAt", "")).startswith("2026-10-04")]
    print(f"\n{name}: {len(same)} jadwal 4 Okt 2026 (UTC)")
    for d in sorted(same, key=lambda x: x.get("scheduleAt")):
        t = datetime.fromisoformat(str(d["scheduleAt"]).replace("Z", "+00:00")).astimezone(WIB)
        desc = d.get("description") or ""
        print(f"   {t.strftime('%H:%M')} WIB status={d.get('status')} type={d.get('type')} "
              f"ownlink={dom in desc.lower()} | {desc[:60]!r}")
