#!/usr/bin/env python3
"""Buat lembar kontak dari kandidat foto pustaka StudioSoft, supaya bisa dinilai sekali lihat."""
import base64, json, urllib.request
from PIL import Image, ImageDraw, ImageFont
import io

AUTH = base64.b64encode(b"bambangbot:q26r RePo BVy6 pwU2 F3z7 ouyl").decode()
H = {"Authorization": f"Basic {AUTH}", "User-Agent": "Mozilla/5.0"}
KANDIDAT = [6066, 6067, 6069, 8052, 6088, 6063, 6086]

gambar = []
for mid in KANDIDAT:
    try:
        m = json.loads(urllib.request.urlopen(urllib.request.Request(
            f"https://studiosoft.id/wp-json/wp/v2/media/{mid}", headers=H), timeout=90).read())
        data = urllib.request.urlopen(urllib.request.Request(m["source_url"], headers={"User-Agent": "Mozilla/5.0"}),
                                      timeout=90).read()
        im = Image.open(io.BytesIO(data)).convert("RGB")
        gambar.append((mid, m["source_url"].split("/")[-1], im))
    except Exception as e:
        print(f"   #{mid} gagal: {str(e)[:50]}")

if gambar:
    kolom, lebar, tinggi = 3, 420, 280
    baris = (len(gambar) + kolom - 1) // kolom
    sheet = Image.new("RGB", (kolom * lebar, baris * (tinggi + 34)), (255, 255, 255))
    dr = ImageDraw.Draw(sheet)
    try:
        font = ImageFont.truetype("/home/mantapman/.fonts/Poppins-Regular.ttf", 18)
    except Exception:
        font = ImageFont.load_default()
    for i, (mid, nama, im) in enumerate(gambar):
        x, y = (i % kolom) * lebar, (i // kolom) * (tinggi + 34)
        kecil = im.copy()
        kecil.thumbnail((lebar - 20, tinggi - 10))
        sheet.paste(kecil, (x + 10, y + 10))
        dr.text((x + 10, y + tinggi + 6), f"#{mid} {nama[:40]}", fill=(20, 20, 20), font=font)
    sheet.save("/tmp/ss_kandidat_foto.jpg", quality=88)
    print("lembar kontak → /tmp/ss_kandidat_foto.jpg", sheet.size)
    for mid, nama, im in gambar:
        print(f"   #{mid} {im.size} {nama}")
