#!/usr/bin/env python3
"""Buat image FB DAS Bengkel Indonesia 4 Sep 2026 — Pentingnya Overhaul Mesin
1080x1350, bg #1a1a2e, teks putih, aksen orange #f97316 (pola das_fb_20260903.py)
Artikel: https://dasindonesia.com/pentingnya-overhaul-mesin-kerugian-bila-terlambat/
"""
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 = "JANGAN TUNDA\nOVERHAUL MESIN"
d.multiline_text((SZ, 210), title, font=font(84, True), fill=TXT, spacing=14)

# Subtitle (orange)
d.text((SZ, 540), "Kerugian yang mengintai bila terlambat", font=font(44, True), fill=ORANGE)

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

# Body bullets — 3 item, centang vektor orange
bullets = [
    ("Asap putih atau biru", "Tanda ring piston mulai aus"),
    ("Oli cepat habis", "Padahal tidak ada kebocoran"),
    ("Suara knocking muncul", "Kompresi turun, jangan dipaksakan"),
]
y = 700
for t, s_ in bullets:
    draw_check(d, SZ + 4, y + 6, 34, ORANGE)
    d.text((SZ + 62, y), t, font=font(37, True), fill=TXT)
    d.text((SZ + 62, y + 54), s_, font=font(28, False), fill=MUTED)
    y += 150

# 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), "#OverhaulMesin", font=font(30, True), fill=TXT, anchor="ra")

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

# Sanity check: lebar teks terpanjang (max aman ~950px)
checks = [
    ("title S1", font(84, True), "JANGAN TUNDA"),
    ("title S2", font(84, True), "OVERHAUL MESIN"),
    ("subtitle", font(44, True), "Kerugian yang mengintai bila terlambat"),
    ("b1 label", font(37, True), "Suara knocking muncul"),
    ("b1 sub", font(28, False), "Kompresi turun, jangan dipaksakan"),
    ("footer l", font(30, True), "www.dasindonesia.com"),
    ("footer r", font(30, True), "#OverhaulMesin"),
]
for name, f, txt in checks:
    print(f"  {name}: {f.getlength(txt):.0f}px")

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