#!/usr/bin/env python3
"""Buat image FB DAS Bengkel Indonesia 6 Sep 2026 — 6 Komponen Wajib Cek Bulanan
1080x1350, bg #1a1a2e, teks putih, aksen orange #f97316 (pola das_fb_20260905.py)
Artikel: https://dasindonesia.com/komponen-mobil-wajib-diperiksa-bulanan/
"""
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 = "6 KOMPONEN WAJIB\nDICEK SETIAP BULAN"
d.multiline_text((SZ, 195), title, font=font(78, True), fill=TXT, spacing=12)

# Subtitle (orange)
d.text((SZ, 520), "Cegah rusak mendadak sebelum mogok", font=font(38, True), fill=ORANGE)

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

# Body bullets — 3 item, centang vektor orange
bullets = [
    ("Oli mesin & coolant", "Cek level & kondisi via dipstick tiap 2 minggu"),
    ("Kampas rem & minyak rem", "Pastikan tidak aus sebelum perjalanan jauh"),
    ("Filter udara, aki & ban", "Komponen kecil, dampaknya besar"),
]
y = 660
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 += 150

# Note bar (artikel 6 komponen lengkap)
d.text((SZ, y + 10), "Baca panduan lengkap 6 komponen 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), "#CekMobilBulanan", font=font(30, True), fill=TXT, anchor="ra")

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

# Sanity check: lebar teks terpanjang (max aman ~950px)
checks = [
    ("title S1", font(78, True), "6 KOMPONEN WAJIB"),
    ("title S2", font(78, True), "DICEK SETIAP BULAN"),
    ("subtitle", font(38, True), "Cegah rusak mendadak sebelum mogok"),
    ("note", font(30, True), "Baca panduan lengkap 6 komponen di artikel kami"),
    ("b1 label", font(36, True), "Filter udara, aki & ban"),
    ("b1 sub", font(26, False), "Komponen kecil, dampaknya besar"),
    ("footer l", font(30, True), "www.dasindonesia.com"),
    ("footer r", font(30, True), "#CekMobilBulanan"),
]
for name, f, txt in checks:
    print(f"  {name}: {f.getlength(txt):.0f}px")

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