#!/usr/bin/env python3
"""Buat image FB DAS Bengkel Indonesia 7 Sep 2026 — Tanda AC Mobil Perlu Flushing
1080x1350, bg #1a1a2e, teks putih, aksen orange #f97316 (pola das_fb_20260906.py)
Artikel: https://dasindonesia.com/perawatan-flushing-ac-mobil-agar-tetap-dingin-das-indonesia-surabaya/
"""
from PIL import Image, ImageDraw, ImageFont
import os

W, H = 1080, 1350
BG = (26, 26, 46)        # #1a1a2e
TXT = (255, 255, 255)    # white
ORANGE = (249, 115, 22)  # #f97316
MUTED = (200, 200, 210)

FONT_PATHS = [
    "/home/mantapman/.fonts/Poppins-Bold.ttf",
    "/home/mantapman/.fonts/Poppins-SemiBold.ttf",
    "/home/mantapman/.fonts/Poppins-Regular.ttf",
    "/home/mantapman/.fonts/poppins/Poppins-Bold.ttf",
    "/home/mantapman/.fonts/poppins/Poppins-Regular.ttf",
    "/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf",
    "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf",
]

def font(sz, bold=True, regular=False):
    want = "Bold" if bold else "Regular"
    for p in FONT_PATHS:
        if ("Bold" in p) == bold or (regular and "Regular" in p):
            if os.path.exists(p):
                try:
                    return ImageFont.truetype(p, sz)
                except Exception:
                    continue
    return ImageFont.load_default()

def draw_check(d, x, cy, size, fill):
    """Gambar centang vektor (garis 2 segmen) — anti-tofu."""
    s = size
    p1 = (x, cy + s * 0.52)
    p2 = (x + s * 0.32, cy + s * 0.92)
    p3 = (x + s, cy + s * 0.08)
    d.line([p1, p2, p3], fill=fill, width=max(5, int(s * 0.16)), joint="curve")

img = Image.new("RGB", (W, H), BG)
d = ImageDraw.Draw(img)

SZ = 65

# Header
d.text((SZ, SZ), "DAS BENGKEL INDONESIA", font=font(34, True), fill=ORANGE)
d.text((W - SZ, SZ), "OTOMOTIF", font=font(30, True), fill=TXT, anchor="ra")

# Accent line under header
d.line([(SZ, SZ + 70), (W - SZ, SZ + 70)], fill=ORANGE, width=4)

# Title (big, bold, 2 baris)
title = "3 TANDA AC MOBIL\nPERLU FLUSHING"
d.multiline_text((SZ, 195), title, font=font(82, True), fill=TXT, spacing=12)

# Subtitle (orange)
d.text((SZ, 530), "Jangan tunggu sampai tidak dingin total", font=font(38, True), fill=ORANGE)

# Garis aksen kecil sebelum bullets
d.line([(SZ, 625), (SZ + 180, 625)], fill=ORANGE, width=5)

# Body bullets — 3 item, centang vektor orange
bullets = [
    ("AC kurang dingin", "Walau freon baru saja diisi"),
    ("Muncul bau tak sedap", "Tanda kotoran & kerak di evaporator"),
    ("Jarang diservis", "Saluran AC butuh pembersihan menyeluruh"),
]
y = 680
for t, s_ in bullets:
    draw_check(d, SZ + 4, y + 6, 34, ORANGE)
    d.text((SZ + 62, y), t, font=font(36, True), fill=TXT)
    d.text((SZ + 62, y + 52), s_, font=font(26, False), fill=MUTED)
    y += 155

# Note bar
d.text((SZ, y + 20), "Baca panduan lengkap flushing AC di artikel kami", font=font(30, True), fill=ORANGE)

# Footer
d.line([(SZ, H - 130), (W - SZ, H - 130)], fill=(70, 70, 100), width=3)
d.text((SZ, H - 108), "www.dasindonesia.com", font=font(30, True), fill=ORANGE)
d.text((W - SZ, H - 108), "#PerawatanAC", font=font(30, True), fill=TXT, anchor="ra")

img.save("das_fb_20260907.png")
print("saved das_fb_20260907.png")

# Sanity check: lebar teks terpanjang (max aman ~950px)
checks = [
    ("title S1", font(82, True), "3 TANDA AC MOBIL"),
    ("title S2", font(82, True), "PERLU FLUSHING"),
    ("subtitle", font(38, True), "Jangan tunggu sampai tidak dingin total"),
    ("note", font(30, True), "Baca panduan lengkap flushing AC di artikel kami"),
    ("b1 label", font(36, True), "AC kurang dingin"),
    ("b1 sub", font(26, False), "Tanda kotoran & kerak di evaporator"),
    ("footer l", font(30, True), "www.dasindonesia.com"),
    ("footer r", font(30, True), "#PerawatanAC"),
]
for name, f, txt in checks:
    print(f"  {name}: {f.getlength(txt):.0f}px")

im = Image.open("das_fb_20260907.png")
print("size:", im.size, "mode:", im.mode)
