#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Mock tampilan FEED Instagram (grid 3 kolom) dari slide yang sudah dirender."""
import sys, os
from PIL import Image

indir = sys.argv[1] if len(sys.argv) > 1 else "/tmp/tsc_feed_bjc"
out = sys.argv[2] if len(sys.argv) > 2 else f"{indir}/grid_feed.jpg"

FILE = sorted(f for f in os.listdir(indir) if f.endswith(".jpg") and f.startswith("tsc_feed"))
CELL = 330          # ukuran thumbnail di grid (1:1 crop tengah)
GAP = 8
KOL = 3
BARIS = (len(FILE) + KOL - 1) // KOL

W = KOL * CELL + (KOL + 1) * GAP
H = 120 + BARIS * CELL + (BARIS + 1) * GAP
kanvas = Image.new("RGB", (W, H), "#FFFFFF")

from PIL import ImageDraw, ImageFont
d = ImageDraw.Draw(kanvas)
judul_grid = f"feed IG The Skin Code — {len(FILE)} slide (urutan baca kiri ke kanan)"
ukuran = 34
while ukuran > 18:
    f = ImageFont.truetype("/home/mantapman/.local/share/fonts/Poppins-SemiBold.ttf", ukuran)
    if d.textlength(judul_grid, font=f) <= W - 2 * (GAP + 6):
        break
    ukuran -= 2
d.text((GAP + 6, 40), judul_grid, font=f, fill="#0F2557")

for i, nama in enumerate(FILE):
    im = Image.open(f"{indir}/{nama}").convert("RGB")
    s = min(im.size)
    kiri = (im.size[0] - s) // 2
    im = im.crop((kiri, 0, kiri + s, s)).resize((CELL, CELL), Image.LANCZOS)
    r, c = divmod(i, KOL)
    x = GAP + c * (CELL + GAP)
    y = 120 + GAP + r * (CELL + GAP)
    kanvas.paste(im, (x, y))

kanvas.save(out, quality=90)
print("✅", out, kanvas.size)
