#!/usr/bin/env python3
"""
gen_ss_cards.py — versi STUDIOSOFT dari kartu Threads @ukyhandoko.

Perintah Bos 16 Sep 2026: "ok kasih gambar / image kaya gini .. tapi ganti
@ukyhandoko dengan www.studiosoft.id" + "yang bawah tetep gapapa
@ukyhandoko - founder StudioSoft".

Jadi:
  • LAYOUT PERSIS standar uky (square 1080×1080, judul Bold 85 / body Regular 36,
    blok di tengah vertikal, rata KIRI, tanpa garis separator).
  • HEADER (kiri-atas) diganti: "www.studiosoft.id"  (sebelumnya @ukyhandoko).
  • FOOTER (kiri-bawah) TIDAK diubah — tetap seperti aslinya
    ("@ukyhandoko • Founder StudioSoft" / "dmark.id • Strategic Branding Agency" /
     "studiosoft.id • Digital Growth Partner").
  • TEKS kartu tidak diubah (isi sama dengan seri uky).

Output:
  ss_threads_images/  (20 slide)   ← mirror uky_threads_images
  ss_quote_cards/     (51 file)    ← mirror uky3_output

Pakai:
  python3 gen_ss_cards.py preview     # 2 contoh → ss_preview/
  python3 gen_ss_cards.py batch       # render semua ke folder SS
"""
import os
import sys

import gen_uky_center as G

WS = G.WS
HEADER = "www.studiosoft.id"
CANVAS = (1080, 1080)
T_SIZE, B_SIZE = 85, 36


def main():
    which = sys.argv[1] if len(sys.argv) > 1 else "preview"
    out_base = os.path.join(WS, "ss_preview" if which == "preview" else "")
    os.makedirs(out_base, exist_ok=True)
    made = []

    if which == "preview":
        for src in G.load_uky_threads():
            fn = src["filename"]
            if not fn.startswith(("11_", "16_")):
                continue
            out = G.render(tuple(src["bg_color"]), tuple(src["text_color"]),
                           src["title"], src.get("body", ""), src.get("footer_text", ""),
                           src.get("page_number", ""),
                           filename=f"SS_{fn}", mode="left", out_dir=out_base,
                           canvas=CANVAS, title_size=T_SIZE, body_size=B_SIZE,
                           header=HEADER)
            made.append(out)
    else:
        d1 = os.path.join(WS, "ss_threads_images")
        for src in G.load_uky_threads():
            made.append(G.render(tuple(src["bg_color"]), tuple(src["text_color"]),
                                 src["title"], src.get("body", ""),
                                 src.get("footer_text", ""), src.get("page_number", ""),
                                 filename=src["filename"], mode="left", out_dir=d1,
                                 canvas=CANVAS, title_size=T_SIZE, body_size=B_SIZE,
                                 header=HEADER))
        d2 = os.path.join(WS, "ss_quote_cards")
        for k in G.load_uky3():
            for suf, (bg, fg) in G.BG_MAP.items():
                made.append(G.render(bg, fg, k["judul"], k.get("body", ""),
                                     k.get("footer", ""), "1/1",
                                     filename=f"{k['nama']}_{suf.lower()}.png", mode="left",
                                     out_dir=d2, canvas=CANVAS,
                                     title_size=k.get("judul_size", T_SIZE),
                                     body_size=k.get("body_size", B_SIZE),
                                     header=HEADER))

    for p in made[:6]:
        print("✅", p, os.path.getsize(p), "bytes")
    print(f"total {len(made)} file")


if __name__ == "__main__":
    main()
