#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Cek topic/label pada jadwal Threads @ukyhandoko di Repliz (versi loop eksplisit)."""
import collections
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():
    c = get_client()
    d = semua(c)
    print("total jadwal:", len(d))
    baris_uky = []
    for x in d:
        aid = x.get("accountId") or (x.get("account") or {}).get("_id")
        if aid == UKY:
            baris_uky.append(x)
    print("jadwal uky:", len(baris_uky))
    ctr = {}
    for x in baris_uky:
        k = x.get("topic") or "(kosong)"
        ctr[k] = ctr.get(k, 0) + 1
    print("\n-- sebaran topic uky --")
    for k, v in sorted(ctr.items(), key=lambda z: -z[1]):
        print("%5d  %s" % (v, k))

    print("\n-- jadwal uky bertopic mengandung 'growth' --")
    n = 0
    for x in sorted(baris_uky, key=lambda z: z.get("scheduleAt") or ""):
        t = (x.get("topic") or "").lower()
        if "growth" in t:
            n += 1
            print("%s  status=%-8s topic=%r title=%r type=%s id=%s" % (
                (x.get("scheduleAt") or "")[:16], x.get("status"), x.get("topic"),
                x.get("title"), x.get("type"), x.get("_id")))
    print("jumlah:", n)


if __name__ == "__main__":
    main()
