#!/usr/bin/env python3
"""Verifikasi akhir jadwal Threads 5 akun untuk 13 Okt 2026 (semua status) + isi log harian."""
import json
import re
import sys
from datetime import datetime, timedelta, timezone

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

WIB = timezone(timedelta(hours=7))
ACC_MAP = {
    "studiosoft": ACC.STUDIOSOFT_THREADS,
    "uky": ACC.UKY_THREADS,
    "tslaw": ACC.TSLAW_THREADS,
    "tsc": ACC.TSC_THREADS,
    "das": ACC.DAS_THREADS,
}
NAME = {v: k for k, v in ACC_MAP.items()}

c = get_client()
docs = []
for p in range(1, 150):
    b = c.get_schedules(page=p, limit=100).get("docs", [])
    if not b:
        break
    docs += b
    if len(b) < 100:
        break

URL_RE = re.compile(r"https?://\S+")
MENT_RE = re.compile(r"@\w+")
print("=== Post BARU hari ini (cron artikel ber-link) ===")
targets = {"6acd4f9750e4ec6e86e8c6b3": "tsc 20:00", "6acd4f9707a7879b689ae61d": "das 20:00",
           "6acd4fce07a7879b689af140": "uky 14:00", "6acd4fce50e4ec6e86e8d4b7": "tslaw 17:00"}
by_id = {d.get("_id"): d for d in docs}
for k, label in targets.items():
    d = by_id.get(k)
    if not d:
        print(f"  ❌ {label}: id {k} TIDAK ADA di API")
        continue
    dt = datetime.fromisoformat(str(d["scheduleAt"]).replace("Z", "+00:00")).astimezone(WIB)
    desc = d.get("description") or ""
    own = {"tsc": "theskincodeclinic.com", "das": "dasindonesia.com", "uky": "studiosoft.id", "tslaw": "tslaw.id"}[label.split()[0]]
    print(f"  ✅ {label} {dt.strftime('%Y-%m-%d %H:%M')} WIB status={d.get('status')} id={k} "
          f"len={len(desc)} link_ok={own in desc} mention={MENT_RE.findall(desc)} "
          f"replies={len(d.get('replies') or [])} topic={d.get('topic')!r}")

print("\n=== Semua jadwal 5 akun pada 2026-10-13 (ringkas) ===")
for d in sorted(docs, key=lambda x: str(x.get("scheduleAt"))):
    if d.get("accountId") not in NAME:
        continue
    dt = datetime.fromisoformat(str(d["scheduleAt"]).replace("Z", "+00:00")).astimezone(WIB)
    if dt.strftime("%Y-%m-%d") != "2026-10-13":
        continue
    own = "own-link" if any(dom in (d.get("description") or "") for dom in
                            ("studiosoft.id", "tslaw.id", "theskincodeclinic.com", "dasindonesia.com")) else "-"
    print(f"  {dt.strftime('%H:%M')} {NAME[d['accountId']]:11s} {d.get('status'):8s} {str(d.get('type')):6s} {own:9s} id={d.get('_id')}")

log = json.load(open(f"{WS}/log_threads_harian.json"))
print("\n=== log_threads_harian.json → threads_used_links['2026-10-13'] ===")
print(json.dumps(log["threads_used_links"].get("2026-10-13", {}), indent=1, ensure_ascii=False))
print("=== posts entry 2026-10-13 ===")
for p in log["posts"]:
    if p.get("date") == "2026-10-13":
        print(json.dumps(p, indent=1, ensure_ascii=False))
