#!/usr/bin/env python3
"""Generate FB image DAS — Tanda Mobil Mewah Butuh Perawatan Khusus (3 Agustus 2026)"""
from PIL import Image, ImageDraw, ImageFont
import os

W, H = 1080, 1350
BG = '#1a1a2e'
ORANGE = '#f97316'
WHITE = '#ffffff'
MARGIN = 65

font_dirs = ['/usr/share/fonts', '/usr/local/share/fonts', os.path.expanduser('~/.fonts'), os.path.expanduser('~/.local/share/fonts')]
poppins_bold = poppins_semibold = poppins_regular = None
for d in font_dirs:
    for root, dirs, files in os.walk(d):
        for f in files:
            p = os.path.join(root, f)
            if 'Poppins-Bold' in f and f.endswith(('.ttf', '.otf')) and not poppins_bold:
                poppins_bold = p
            elif 'Poppins-SemiBold' in f and f.endswith(('.ttf', '.otf')) and not poppins_semibold:
                poppins_semibold = p
            elif 'Poppins-Regular' in f and f.endswith(('.ttf', '.otf')) and not poppins_regular:
                poppins_regular = p

if not poppins_bold: poppins_bold = '/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf'
if not poppins_semibold: poppins_semibold = poppins_bold
if not poppins_regular: poppins_regular = '/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf'

def draw_text_centered(draw, text, font, color, y, max_w):
    lines = []
    words = text.split()
    line = ''
    for w in words:
        test = line + ' ' + w if line else w
        bb = draw.textbbox((0, 0), test, font=font)
        if bb[2] - bb[0] > max_w and line:
            lines.append(line)
            line = w
        else:
            line = test
    if line:
        lines.append(line)
    for l in lines:
        bb = draw.textbbox((0, 0), l, font=font)
        tw = bb[2] - bb[0]
        x = (W - tw) // 2
        draw.text((x, y), l, fill=color, font=font)
        y += bb[3] - bb[1] + 8
    return y

img = Image.new('RGB', (W, H), BG)
draw = ImageDraw.Draw(img)
max_w = W - MARGIN * 2

f_big = ImageFont.truetype(poppins_bold, 88)
f_title = ImageFont.truetype(poppins_bold, 74)
f_sub = ImageFont.truetype(poppins_semibold, 40)
f_body = ImageFont.truetype(poppins_regular, 36)
f_small = ImageFont.truetype(poppins_regular, 32)
f_logo = ImageFont.truetype(poppins_bold, 28)
f_footer = ImageFont.truetype(poppins_regular, 24)

# Header
draw.text((MARGIN, MARGIN), 'DAS BENGKEL INDONESIA', fill=ORANGE, font=f_logo)
bb = draw.textbbox((0, 0), 'SPESIALIS ENGINE', font=f_logo)
draw.text((W - MARGIN - (bb[2]-bb[0]), MARGIN), 'SPESIALIS ENGINE', fill=ORANGE, font=f_logo)

y = MARGIN + 40
draw.line([(MARGIN, y), (W - MARGIN, y)], fill=ORANGE, width=2)

# Main visual
y = 170
y = draw_text_centered(draw, 'MOBIL MEWAH', f_big, WHITE, y, max_w)
y = draw_text_centered(draw, 'BUTUH PERAWATAN', f_big, ORANGE, y, max_w)
y = draw_text_centered(draw, 'KHUSUS?', f_big, ORANGE, y, max_w)

y += 25
bb = draw.textbbox((0, 0), '— — — — — — — — — — —', font=f_sub)
draw.text(((W - (bb[2]-bb[0]))//2, y), '— — — — — — — — — — —', fill=ORANGE, font=f_sub)
y += 55

y = draw_text_centered(draw, 'Jangan Abaikan 5 Gejala Ini:', f_sub, WHITE, y, max_w)
y += 10
draw.line([(MARGIN + 100, y), (W - MARGIN - 100, y)], fill=ORANGE, width=3)
y += 45

items = [
    '✔ Boros oli / asap kebiruan',
    '✔ Mesin overheat berulang',
    '✔ Suara knocking di mesin',
    '✔ Tarikan berat & tenaga loyo',
    '✔ Transmisi terasa kasar / slip',
]
for item in items:
    bb = draw.textbbox((0, 0), item, font=f_body)
    draw.text((MARGIN + 20, y + 2), item, fill=WHITE, font=f_body)
    y += bb[3] - bb[1] + 22

# CTA
y = H - MARGIN - 190
draw.line([(MARGIN, y), (W - MARGIN, y)], fill=ORANGE, width=1)
y += 25
y = draw_text_centered(draw, 'Gejala Kecil yang Diabaikan', f_small, WHITE, y, max_w)
y = draw_text_centered(draw, '= Biaya Perbaikan Berlipat', f_small, ORANGE, y, max_w)
y += 40
y = draw_text_centered(draw, 'Konsultasi Gratis dengan Teknisi Kami', f_footer, ORANGE, y, max_w)

# Footer
draw.text((MARGIN, H - MARGIN - 10), 'www.dasindonesia.com', fill='#888888', font=f_footer)
bb = draw.textbbox((0, 0), '#DASBengkel #MobilMewah', font=f_footer)
draw.text((W - MARGIN - (bb[2]-bb[0]), H - MARGIN - 10), '#DASBengkel #MobilMewah', fill='#888888', font=f_footer)

path = '/home/mantapman/.hermes/profiles/atun/workspace/das_fb_20260803.png'
img.save(path)
print(f'✅ Gambar: {path}')
