#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Ringkasan akhir sesi 2 Okt pagi: HTTP status 8 artikel baru + jadwal IG SS 2-5 Okt."""
import subprocess
from datetime import datetime, timedelta, timezone

from repliz_client import get_client

WIB = timezone(timedelta(hours=7))
ART = ["digital-marketing-bisnis-properti", "digital-marketing-bisnis-manufaktur",
       "seo-untuk-bisnis-properti", "insight-media-sosial-bisnis-properti",
       "analitik-digital-bisnis-properti", "data-marketing-bisnis-properti",
       "digital-marketing-bisnis-retail", "digital-marketing-bisnis-keuangan"]

print("=== 8 artikel vertikal (HTTP dari luar) ===")
for s in ART:
    u = f"https://studiosoft.id/{s}/"
    code = subprocess.run(["curl", "-s", "-4", "-o", "/dev/null", "-w", "%{http_code}", "--http1.1",
                           "--max-time", "90", u], capture_output=True, text=True).stdout
    print(f"  {code}  {s}")

c = get_client()
rows, page = [], 1
while True:
    r = c.get_schedules(page=page, limit=100)
    docs = r.get("docs") or r.get("data") or []
    if not docs:
        break
    for d in docs:
        if d.get("accountId") == "6a38ac33c5ff4ce3a3231232" and (d.get("scheduleAt") or "")[:10] in (
                "2026-10-02", "2026-10-03", "2026-10-04", "2026-10-05"):
            rows.append(d)
        if d.get("accountId") in ("6a335b9ec5ff4ce3a3225c2a", "6a334952c5ff4ce3a3225941",
                                  "6a334c49c5ff4ce3a32259c9") and (d.get("topic") or "").startswith("Seri "):
            rows.append(d)
    if len(docs) < 100:
        break
    page += 1

print("\n=== IG SS 2-5 Okt (feed & story) ===")
for d in sorted([x for x in rows if x.get("accountId") == "6a38ac33c5ff4ce3a3231232"],
                key=lambda x: x["scheduleAt"]):
    t = datetime.strptime(d["scheduleAt"], "%Y-%m-%dT%H:%M:%S.%fZ").replace(
        tzinfo=timezone.utc).astimezone(WIB)
    if d.get("type") in ("album", "story") or "car" in (d.get("title") or "").lower():
        print(f"  {t.strftime('%d %b %H:%M')} WIB | {d.get('type'):<5} | {d.get('status'):<7} | "
              f"{(d.get('title') or '')[:52]} | media {len(d.get('medias') or [])}")

seri = [x for x in rows if (x.get("topic") or "").startswith("Seri ")]
print(f"\n=== jadwal seri (Threads/FB/LinkedIn SS): {len(seri)} | "
      f"pending={sum(1 for x in seri if x.get('status')=='pending')} | "
      f"error={sum(1 for x in seri if x.get('status')=='error')}")
