#!/usr/bin/env python3
"""Verifikasi carousel feed IG SS hari ini (slot 08:30 WIB) yang SUDAH terpasang."""
import sys, re, subprocess, json
sys.path.insert(0, '/home/mantapman/.hermes/profiles/atun/workspace')
from repliz_client import ReplizClient, ACC

TGL = "2026-10-06"
PREFIX = f"{TGL}T01:30:00"

cli = ReplizClient()
docs = []
for pg in range(1, 40):
    d = cli.get(f"/public/schedule?status=pending&page={pg}&limit=100")
    dd = d.get("docs") or d.get("data") or []
    docs.extend(dd)
    if pg >= int(d.get("totalPages") or 1) or not dd:
        break
hit = [d for d in docs if d.get("accountId") == ACC.STUDIOSOFT_IG
       and str(d.get("scheduleAt","")).startswith(PREFIX)]
if not hit:
    print("TIDAK ADA jadwal album di slot tsb (dalam filter pending).")
    sys.exit(2)
d = hit[0]
print("ID     :", d.get("_id") or d.get("id"))
print("status :", d.get("status"))
print("type   :", d.get("type"))
print("when   :", d.get("scheduleAt"))
print("title  :", d.get("title"))
print("account:", (d.get("account") or {}).get("name"))
med = d.get("medias") or []
print("media  :", len(med))
desc = d.get("description") or ""
print("desc_len:", len(desc))
print("replies :", len(d.get("replies") or []))
# caption checks
print("link    :", bool(re.search(r'studiosoft\.id', desc)))
tags = re.findall(r'#(\w+)', desc)
print("hashtag :", tags)
print("tag_lower:", all(t == t.lower() for t in tags))
print("CTA     :", bool(re.search(r'komentar|diskusi|pendapat|menurut', desc, re.I)))
cjk = re.findall(r'[\u3000-\u9fff\uff00-\uffef\uac00-\ud7af]', desc)
print("CJK     :", cjk)
print("mention internal:", re.findall(r'@(ukyhandoko|studiosoft|theskincode|dniclinic|leitsurabaya|everybe)', desc, re.I))
print("--- media URLs (cek 2 ingress) ---")
ips = ["103.84.155.153", "103.84.155.217"]
for m in med:
    url = m.get("url") or m.get("path")
    codes = []
    for ip in ips:
        p = subprocess.run(["curl","-s","-o","/dev/null","-w","%{http_code}","--max-time","25",
                            "--resolve", f"mantapserver.tail3947bb.ts.net:443:{ip}", url],
                           capture_output=True, text=True)
        codes.append(p.stdout.strip())
    print(f"{codes}  {url.rsplit('/',1)[-1]}")
