#!/usr/bin/env python3
"""Validasi file konten sebelum dijadwalkan + verifikasi HTTP semua link."""
import json, re, subprocess, sys

sys.path.insert(0, "/home/mantapman/.hermes/profiles/atun/workspace")
from repliz_client import CJK_RE

data = json.load(open("/home/mantapman/.hermes/profiles/atun/workspace/threads_content_today.json"))
URL_RE = re.compile(r"https?://\S+")
MENTION_RE = re.compile(r"@\w+")
CTA_RE = re.compile(r"komentar|tulis di|ceritakan|menurut kamu", re.I)

ok = True
for it in data["accounts"]:
    t = it["text"]
    links = URL_RE.findall(t)
    flags = []
    if len(t) > 500:
        flags.append(f"PANJANG {len(t)}")
    if not links:
        flags.append("TANPA LINK")
    if MENTION_RE.search(t):
        flags.append("ADA @MENTION " + str(MENTION_RE.findall(t)))
    if CJK_RE.search(t):
        flags.append("ADA CJK " + CJK_RE.findall(t)[0])
    if not CTA_RE.search(t):
        flags.append("TANPA CTA")
    if it.get("topic") and len(it["topic"]) > 50:
        flags.append("TOPIC >50")
    if it["account"] == "uky" and not (250 <= len(t) <= 500):
        flags.append(f"UKY PANJANG {len(t)}")
    print(f"{it['account']:11} len={len(t):4} link={len(links)} topic={it.get('topic')!r} "
          f"{'OK' if not flags else '!! ' + '; '.join(flags)}")
    if flags:
        ok = False
    for u in links:
        r = subprocess.run(["curl", "-4", "-s", "-o", "/dev/null", "-w", "%{http_code}", "-L", "-m", "25",
                            "-A", "Mozilla/5.0", u], capture_output=True, text=True)
        print(f"          HTTP {r.stdout.strip()} {u}")
        if r.stdout.strip() != "200":
            ok = False

print("\nHASIL:", "SEMUA OK" if ok else "ADA MASALAH")
