#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""perbaiki_slide9_creativeagency.py — perbaiki slide 9 carousel 19 Okt 2026.

Masalah: seksi artikel "Creative Agency vs In-house Team" berisi TABEL markdown; generator
(kunci_car10_okt.py::bersih) tidak membuang pipa tabel sehingga slide 9 tercetak sebagai
"| Aspek | Agency | In-house | | --- | ..." — tidak terbaca.

Perbaikan: rakit ulang slide 9 dari ISI TABEL yang sama (bukan karangan), render ulang, timpa
JPEG dengan NAMA FILE SAMA (jadwal pending memakai URL itu, jadi tidak perlu PUT), gate 200
dua ingress.
"""
import os
import subprocess
import sys

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
sys.path.insert(0, WS)
import ss_carousel_lib as L  # noqa: E402

IMG = os.path.join(WS, "openclaw-img")
OUT = os.path.join(WS, "ss_ig_car10_okt")
NAVY = (18, 43, 99)
WHITE = (255, 255, 255)
PREFIX = "ss_car10_creativeagency"
TAG = "#creativeagency"
INGRESS = ("103.84.155.153", "103.84.155.217")
HOST = "mantapserver.tail3947bb.ts.net"


def gate(nama):
    for ip in INGRESS:
        code = subprocess.run(
            ["curl", "-s", "-o", "/dev/null", "-w", "%{http_code}", "--max-time", "30",
             "--resolve", f"{HOST}:443:{ip}", f"https://{HOST}/openclaw-img/{nama}"],
            capture_output=True, text=True).stdout.strip()
        print(f"  gate {ip}: {code}")
        if code != "200":
            return False
    return True


def main():
    from PIL import Image
    s = L.Slide(9, 10, TAG, bg=NAVY, fg=WHITE)
    s.title(["CREATIVE AGENCY", "VS IN-HOUSE TEAM"], after=34)
    s.bullets([
        ("Biaya", "agency: per proyek atau retainer · in-house: gaji tetap + tunjangan."),
        ("Keahlian", "agency: beragam, lintas industri · in-house: terbatas pada tim."),
        ("Skala", "agency: fleksibel · in-house: tergantung kapasitas tim."),
    ], name_size=32, desc_size=28, gap=26, after=22)
    s.para("Belum punya tim kreatif sendiri? Agency jadi langkah paling praktis.", size=28,
           color=(56, 189, 248), after=0)
    png = s.render(f"{PREFIX}_09.png", OUT, quiet=True)
    im = Image.open(png).convert("RGB")
    assert im.size == (1080, 1350), im.size
    jpg = os.path.join(IMG, f"{PREFIX}_09.jpg")
    im.save(jpg, "JPEG", quality=85, optimize=True)
    print(f"render: {png}\njpeg  : {jpg} ({os.path.getsize(jpg)} bytes) warna sudut={im.getpixel((8, 8))}")
    print("gate 200 dua ingress:", "OK" if gate(f"{PREFIX}_09.jpg") else "GAGAL")


if __name__ == "__main__":
    main()
