#!/usr/bin/env python3
"""Cek slot + duplikat tema untuk kartu uky5 #89 (balas_lebih_cepat) - 18 Okt 2026."""
import json, sys, re
from datetime import datetime, timezone, timedelta
ROOT = "/home/mantapman/.hermes/profiles/atun/workspace"
sys.path.insert(0, ROOT)
from repliz_client import get_client
import repliz_openssl_transport
repliz_openssl_transport.install(verbose=False)

UKY_T = "6a334e89c5ff4ce3a3225a48"

def wib(d):
    at = d.get("scheduleAt")
    return None if not at else datetime.fromisoformat(at.replace("Z", "+00:00")) + timedelta(hours=7)

c = get_client()
r = c.get_schedules(page=1, limit=100)
pages = (r["totalDocs"] + 99) // 100
docs = list(r["docs"])
for p in range(2, pages + 1):
    docs.extend(c.get_schedules(page=p, limit=100)["docs"])
print("TOTAL jadwal semua akun:", len(docs), "pages", pages)
uky = [d for d in docs if (d.get("accountId") or (d.get("account") or {}).get("id")) == UKY_T]
uky = [d for d in uky if wib(d)]
uky.sort(key=lambda d: wib(d))
print("JADWAL Threads @ukyhandoko:", len(uky))
print("--- 12 terakhir ---")
for d in uky[-12:]:
    print(wib(d).strftime("%Y-%m-%d %H:%M"), d.get("type"), d.get("status"),
          "|", (d.get("topic") or "")[:45], "|", (d.get("description") or "").strip().splitlines()[0][:70])

print("--- per hari 9-20 Nov 2026 ---")
for day in range(9, 21):
    hari = datetime(2026, 11, day).date()
    same = [d for d in uky if wib(d).date() == hari]
    print(hari, [(wib(d).strftime("%H:%M"), d.get("type")) for d in same])

FR = re.compile(r"jawab|balas|respons|respon|cepat tanggap|respon cepat|balasan", re.I)
print("--- kemunculan tema jawab/balas/cepat ---")
n = 0
for d in uky:
    desc = d.get("description") or ""
    if FR.search(desc) or FR.search(d.get("topic") or ""):
        n += 1
        baris1 = desc.strip().splitlines()[0] if desc.strip() else ""
        print(wib(d).strftime("%Y-%m-%d %H:%M"), d.get("type"), "| TOPIC:", (d.get("topic") or "")[:50],
              "| B1:", baris1[:110])
print("total kemunculan:", n)
