#!/usr/bin/env python3
"""Cari sisa pekerjaan untuk klien yang sudah berhenti: jadwal di Repliz + skrip/job yang menyentuhnya."""
import base64, glob, json, os, re, urllib.request

PROFIL = "/home/mantapman/.hermes/profiles/atun"
WS = f"{PROFIL}/workspace"
BERHENTI = ["LEIT", "LEIT_FB", "LEIT_IG", "LEIT_LINKEDIN", "LEIT_THREADS", "LEIT_TIKTOK"]
KATA_BERHENTI = ("leit", "nuclea", "nucleos", "otto", "pamekasan", "obp", "ekaduta", "merr",
                 "metamorf", "sumu")

BASE = "https://api.repliz.com"
AUTH = "Basic " + base64.b64encode(b"4654609866:soOoH2IRy6BkaIrHSAf1nGly2Rcoiw9Z").decode()
H = {"Authorization": AUTH, "User-Agent": "Mozilla/5.0"}

print("=== skrip cron yang menyebut klien berhenti ===")
for f in glob.glob(f"{PROFIL}/scripts/*.sh") + glob.glob(f"{WS}/scripts/*.sh"):
    isi = open(f, encoding="utf-8", errors="replace").read().lower()
    for k in KATA_BERHENTI:
        if k in isi:
            print(f"   {os.path.basename(f)} · menyebut '{k}'")
            break

print("\n=== jadwal Repliz yang masih menunggu (klien berhenti) ===")
akun = json.loads(json.dumps({
    "LEIT_FB": "6a618e9262caae1e04e99518", "LEIT_IG": "6a7d765862caae1e04f7ded3",
    "LEIT_LINKEDIN": "6a60451662caae1e04e91040", "LEIT_THREADS": "6a5f4af462caae1e04e8b9a6",
    "LEIT_TIKTOK": "6a82c69a62caae1e04fbde9c"}))
total = 0
for nama, aid in akun.items():
    url = f"{BASE}/schedule?accountId={aid}&limit=100"
    try:
        d = json.loads(urllib.request.urlopen(urllib.request.Request(url, headers=H), timeout=60).read())
    except Exception as e:
        print(f"   {nama}: gagal ({str(e)[:50]})")
        continue
    daftar = d.get("docs") or d.get("data") or d.get("schedules") or []
    if isinstance(daftar, dict):
        daftar = daftar.get("docs", [])
    belum = [x for x in daftar if str(x.get("status", "")).lower() in ("pending", "scheduled", "queue", "waiting")]
    total += len(belum)
    print(f"   {nama:<14} {len(daftar)} jadwal · menunggu: {len(belum)}")
    for x in belum[:2]:
        print(f"        {str(x.get('scheduledAt') or x.get('scheduled_at'))[:16]} · {str(x.get('status'))}")

print(f"\ntotal jadwal menunggu untuk klien berhenti: {total}")
