#!/usr/bin/env python3
"""ss_ig_car_pick.py — pilih artikel studiosoft.id yang BELUM pernah dipakai di IG StudioSoft
untuk dijadikan carousel 10 slide feed (slot 08:30 WIB).

Pakai:  python3 ss_ig_car_pick.py [jumlah]
Output: daftar kandidat (slug, tanggal, link) + simpan /tmp/ss_ig_car_kandidat.json
"""
import json
import os
import subprocess
import sys

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
ACC_IG = "6a38ac33c5ff4ce3a3231232"
DUMP = "/tmp/ig_feed_inv.json"
ART = "/tmp/ss_articles.json"


def segarkan_dump():
    """Ambil ulang semua jadwal dari API (biar anti-redundant-nya jujur)."""
    sys.path.insert(0, WS)
    from repliz_client import get_client
    c = get_client()
    docs, page = [], 1
    while True:
        r = c.get(f"/public/schedule?page={page}&limit=100")
        d = r.get("docs") or []
        docs += d
        if page >= (r.get("totalPages") or 0) or not d:
            break
        page += 1
    json.dump(docs, open(DUMP, "w"))
    return docs


def segarkan_artikel():
    p = subprocess.run(["python3", os.path.join(WS, "fetch_ss_articles.py"), "60"],
                       capture_output=True, text=True, cwd=WS)
    print(p.stdout.strip().splitlines()[0] if p.stdout.strip() else p.stderr[-200:])
    return json.load(open(ART))


def norm(u):
    return (u or "").rstrip("/").lower().replace("https://www.", "https://")


if __name__ == "__main__":
    n = int(sys.argv[1]) if len(sys.argv) > 1 else 10
    docs = segarkan_dump()
    print(f"dump jadwal segar: {len(docs)}")
    # link yang sudah dipakai di SEMUA jadwal IG StudioSoft (semua status)
    dipakai = set()
    for d in docs:
        acc = (d.get("account") or {}).get("_id") or d.get("accountId")
        if acc != ACC_IG:
            continue
        for m in ((d.get("description") or ""), (d.get("title") or "")):
            for tok in m.split():
                if "studiosoft.id/" in tok:
                    dipakai.add(norm(tok.strip(".,)(")))
    print(f"link studiosoft.id sudah dipakai di IG SS: {len(dipakai)}")
    art = segarkan_artikel()
    kandidat = [a for a in art if norm(a.get("link")) not in dipakai]
    print(f"kandidat artikel fresh: {len(kandidat)}")
    for a in kandidat[:n]:
        print(f"  {a.get('date','')[:10]}  {a.get('slug')}")
    json.dump(kandidat, open("/tmp/ss_ig_car_kandidat.json", "w"), indent=1)
    print("→ /tmp/ss_ig_car_kandidat.json")
