#!/usr/bin/env python3
"""Buat image FB DAS Bengkel Indonesia 8 Sep 2026 — Kapan Mobil Perlu Engine Overhaul
1080x1350, bg #1a1a2e, teks putih, aksen orange #f97316 (pola das_fb_20260907.py)
Artikel: https://dasindonesia.com/kapan-mobil-perlu-engine-overhaul/
"""
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):
    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 = "4 TANDA MESIN\nPERLU OVERHAUL"
d.multiline_text((SZ, 185), title, font=font(84, True), fill=TXT, spacing=12)

# Subtitle (orange)
d.text((SZ, 545), "Jangan tunggu sampai rusak parah", font=font(38, True), fill=ORANGE)

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

# Body bullets — 4 item, centang vektor orange
bullets = [
    ("Oli cepat habis", "Padahal tidak ada kebocoran terlihat"),
    ("Asap knalpot kebiruan", "Tanda oli ikut terbakar di ruang bakar"),
    ("Suara mesin kasar", "Knocking atau bunyi ngadat dari dalam"),
    ("Tenaga terasa luntur", "Tarikan ngos-ngosan, mesin terasa berat"),
]
y = 690
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 += 140

# Note bar
d.text((SZ, y + 15), "Baca tanda lain & panduan lengkap di artikel kami", font=font(29, 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), "#EngineOverhaul", font=font(30, True), fill=TXT, anchor="ra")

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

# Sanity check: lebar teks terpanjang (max aman ~950px)
checks = [
    ("title S1", font(84, True), "4 TANDA MESIN"),
    ("title S2", font(84, True), "PERLU OVERHAUL"),
    ("subtitle", font(38, True), "Jangan tunggu sampai rusak parah"),
    ("note", font(29, True), "Baca tanda lain & panduan lengkap di artikel kami"),
    ("b1 label", font(36, True), "Asap knalpot kebiruan"),
    ("b1 sub", font(26, False), "Tanda oli ikut terbakar di ruang bakar"),
    ("footer l", font(30, True), "www.dasindonesia.com"),
    ("footer r", font(30, True), "#EngineOverhaul"),
]
for name, f, txt in checks:
    print(f"  {name}: {f.getlength(txt):.0f}px")

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