#!/usr/bin/env python3
"""Buat image FB DAS Bengkel Indonesia 5 Sep 2026 — 7 Penyebab Mobil Brebet
1080x1350, bg #1a1a2e, teks putih, aksen orange #f97316 (pola das_fb_20260904.py)
Artikel: https://dasindonesia.com/7-penyebab-mobil-brebet-tersendat-dan-solusi-perbaikannya/
"""
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-3 baris)
title = "MOBIL BREBET\nDAN TERSENDAT?"
d.multiline_text((SZ, 200), title, font=font(80, True), fill=TXT, spacing=14)

# Subtitle (orange)
d.text((SZ, 540), "Jangan panik dulu — cek 7 penyebab ini", font=font(40, True), fill=ORANGE)

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

# Body bullets — 3 item, centang vektor orange
bullets = [
    ("Busi aus atau kotor", "Percikan api lemah, tenaga berkurang"),
    ("Filter bensin tersumbat", "Suplai bahan bakar ke mesin tersendat"),
    ("Injektor & sensor kotor", "Campuran bahan bakar tidak akurat"),
]
y = 685
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(27, False), fill=MUTED)
    y += 148

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

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

# Sanity check: lebar teks terpanjang (max aman ~950px)
checks = [
    ("title S1", font(80, True), "MOBIL BREBET"),
    ("title S2", font(80, True), "DAN TERSENDAT?"),
    ("subtitle", font(40, True), "Jangan panik dulu — cek 7 penyebab ini"),
    ("note", font(30, True), "Baca 7 penyebab lengkap + solusinya di artikel kami"),
    ("b1 label", font(36, True), "Injektor & sensor kotor"),
    ("b1 sub", font(27, False), "Campuran bahan bakar tidak akurat"),
    ("footer l", font(30, True), "www.dasindonesia.com"),
    ("footer r", font(30, True), "#MobilBrebet"),
]
for name, f, txt in checks:
    print(f"  {name}: {f.getlength(txt):.0f}px")

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