#!/usr/bin/env python3
"""hc42 analysis: dump all Repliz schedules + kapan tiap artikel healthcare terakhir tayang
di Threads/LinkedIn/FB SS. Output: /tmp/repliz_all_20260921.json
"""
import json, os, sys
sys.path.insert(0, '/home/mantapman/.hermes/profiles/atun/workspace')
from repliz_client import ReplizClient, ACC

c = ReplizClient()


def get_retry(ep, tries=6):
    import time
    last = None
    for i in range(tries):
        try:
            return c.get(ep)
        except Exception as e:
            last = e
            time.sleep(3 + 3 * i)
    raise last


docs, page = [], 1
while True:
    d = get_retry("/public/schedule?page=%d&limit=100" % page)
    docs.extend(d.get("docs", []))
    tp = d.get("totalPages") or 1
    if page >= tp:
        break
    page += 1
json.dump(docs, open('/tmp/repliz_all_20260921.json', 'w'))
print("total docs:", len(docs))

HC = [
 "digital-marketing-sidoarjo", "jasa-digital-marketing-klinik",
 "data-analytics-rumah-sakit-kebutuhan-pasien", "iklan-facebook-rumah-sakit",
 "google-business-profile-klinik", "social-media-rumah-sakit-efektif",
 "klinik-kecil-butuh-digital-marketing", "panduan-seo-klinik-rumah-sakit",
 "konten-edukasi-kesehatan-kepercayaan-pasien", "website-rumah-sakit-gagal-pasien",
 "strategi-digital-marketing-rumah-sakit", "rs-klinik-digital-marketing-2026",
 "cara-klinik-kecantikan-di-surabaya-bisa-ditemukan-lebih-cepat-di-google",
 "strategi-seo-terbaik-untuk-klinik-kecantikan-di-surabaya-tingkatkan-pasien-lewat-google",
 "9-contoh-konten-digital-marketing-rumah-sakit-yang-edukatif-dan-tetap-etis",
 "10-channel-digital-marketing-rumah-sakit-yang-wajib-dikelola-di-era-online",
 "7-strategi-digital-marketing-rumah-sakit-untuk-menambah-pasien-setiap-bulan",
 "tips-seo-digital-marketing-surabaya-optimasi-local-untuk-klinik-dan-bengkel-lokal",
 "7-aplikasi-mental-health-anak-usia-4-10-tahun-yang-harus-dicoba-orang-tua",
]

def text_of(d):
    return " ".join([(d.get('description') or ''), (d.get('title') or '')])

for label, aid in (("THREADS", ACC.STUDIOSOFT_THREADS), ("LINKEDIN", ACC.STUDIOSOFT_LINKEDIN),
                   ("FACEBOOK", ACC.STUDIOSOFT_FB)):
    print("\n=== %s SS per artikel healthcare ===" % label)
    for slug in HC:
        rows = []
        for d in docs:
            if d.get('accountId') != aid:
                continue
            if slug in text_of(d):
                rows.append(((d.get('scheduleAt') or '')[:16], (d.get('status') or ''),
                             (d.get('type') or '')[:6], len(d.get('medias') or [])))
        rows.sort()
        succ = [r for r in rows if r[1] == 'success']
        pend = [r for r in rows if r[1] in ('pending', 'scheduled', 'draft')]
        err = [r for r in rows if r[1] not in ('success', 'pending', 'scheduled', 'draft')]
        if not rows:
            print("  %-62s FREE" % slug[:62])
        else:
            print("  %-62s succ=%s pend=%s err=%d" % (slug[:62], succ[-2:], pend[:3], len(err)))
