#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Bersihkan sisa kata 'growth' di JUDUL jadwal Threads @ukyhandoko (15 jadwal lama yang sudah tayang).

Judul lama: 'Threads Growth — SEO & Bisnis' -> 'uky <topic> <tanggal>' (topic sudah sesuai isi).
Kartu image (type=image) TIDAK disentuh: topic/judulnya memang isi kartunya.

Pakai: python3 bersih_judul_growth_uky.py [--run]
"""
import sys
from repliz_client import get_client

UKY = "6a334e89c5ff4ce3a3225a48"


def semua(c):
    docs, page = [], 1
    while True:
        r = c.get_schedules(page=page, limit=100)
        d = r.get("docs") or []
        docs.extend(d)
        if not d or len(docs) >= (r.get("totalDocs") or 0) or page > 60:
            break
        page += 1
    return docs


def main():
    run = "--run" in sys.argv
    c = get_client()
    sasaran = []
    for x in semua(c):
        if (x.get("accountId") or (x.get("account") or {}).get("_id")) != UKY:
            continue
        if x.get("type") != "text":
            continue
        if "growth" not in (x.get("title") or "").lower():
            continue
        tgl = (x.get("scheduleAt") or "")[:10]
        topik = x.get("topic") or "Bisnis"
        sasaran.append({"id": x.get("_id"), "lama": x.get("title"),
                        "baru": f"uky {topik} {tgl}", "status": x.get("status")})
    print("judul masih memuat 'growth':", len(sasaran))
    for s in sasaran:
        print(f"  {s['id']} {s['status']:8s} {s['lama']!r} -> {s['baru']!r}")
    if not run:
        print("\n(dry run — tambahkan --run)")
        return
    ok = gagal = 0
    for s in sasaran:
        try:
            c.update_schedule(s["id"], {"title": s["baru"]})
            ok += 1
        except Exception as e:  # noqa: BLE001
            gagal += 1
            print("❌", s["id"], type(e).__name__, str(e)[:140])
    print(f"selesai: ok {ok} | gagal {gagal}")
    sisa = [x for x in semua(c)
            if (x.get("accountId") or (x.get("account") or {}).get("_id")) == UKY
            and x.get("type") == "text" and "growth" in (x.get("title") or "").lower()]
    print("sisa judul bertulis 'growth' (text):", len(sisa))


if __name__ == "__main__":
    main()
