#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Verifikasi baca-balik semua jadwal growth Threads yang baru dibuat."""
import json, re, sys, datetime
from repliz_client import get_client

CJK = re.compile(r"[\u3000-\u30ff\u3400-\u4dbf\u4e00-\u9fff\uf900-\ufaff\uff00-\uffef]")
MENTION = re.compile(r"@\w+")
CTA = re.compile(r"komentar|tulis di|ceritakan|share di|menurut (kamu|anda)|pendapatmu|"
                 r"pengalamanmu|setuju|kamu pilih|versi kamu|saranmu|tim mana", re.I)

ids = sys.argv[1:]
c = get_client()
masalah = 0
for sid in ids:
    d = c.get_schedule(sid)
    doc = d.get("data") or d
    desc = doc.get("description") or ""
    tags = re.findall(r"#(\w+)", desc)
    akun = (doc.get("account") or {}).get("name")
    tag_besar = [t for t in tags if t != t.lower()]
    bad = []
    if doc.get("status") != "pending":
        bad.append("status=" + str(doc.get("status")))
    if len(desc) > 500:
        bad.append(f"len={len(desc)}")
    if not CTA.search(desc[-120:]):
        bad.append("tanpa-CTA")
    if MENTION.search(desc):
        bad.append("mention")
    if CJK.search(desc):
        bad.append("CJK")
    if tag_besar:
        bad.append("hashtag-besar")
    if (doc.get("replies") or []):
        bad.append("ada-replies")
    if bad:
        masalah += 1
    print(f"{doc.get('scheduleAt','')[:16]} {akun:>18} len={len(desc):3} "
          f"{'❌ ' + ','.join(bad) if bad else '✅'}  {desc[:48]!r}")
print(f"\ntotal {len(ids)} | bermasalah {masalah}")
