#!/usr/bin/env python3
"""Baixa candidatas de fotos de formandos por ID pra Copy 3."""
import requests, os
from pathlib import Path

PEXELS_KEY = "YDqxXGXvOaPQnitSVyxbhghbH49w95DV2fbAkynBjNVvus1TI60Qffdo"
OUT = Path('/opt/mia/workspace/clientes/px3lab/lancamento_photorf2/criativos/pexels_faces')
OUT.mkdir(parents=True, exist_ok=True)

# IDs candidatos pra Copy 3 (4 MATCH: mix etnia/gênero)
CANDIDATOS = [
    6682476,   # positive ethnic woman in graduation outfit (mulher parda/negra)
    6682475,   # mesmo modelo (parda)
    19056728,  # smiling woman in graduation gown (branca)
    12414845,  # woman in black graduation gown (ERISVAN SOUZA - BR)
    30147740,  # 2024 graduation portrait new orleans park
    30385410,  # Xavier university graduate (HBCU - homem/mulher negro/a)
    25643183,  # man and woman in graduation gowns (tem homem)
    23508117,  # blonde woman academic hat
    30386568,  # young cadet smiling (homem)
]


def fetch(pid):
    headers = {'Authorization': PEXELS_KEY}
    r = requests.get(f'https://api.pexels.com/v1/photos/{pid}', headers=headers, timeout=30)
    r.raise_for_status()
    return r.json()


def baixar(url, dest):
    r = requests.get(url, timeout=60)
    r.raise_for_status()
    Path(dest).write_bytes(r.content)
    return len(r.content)


if __name__ == '__main__':
    for pid in CANDIDATOS:
        try:
            data = fetch(pid)
            alt = data.get('alt', '')[:80]
            src = data['src']
            url_large = src.get('large2x') or src.get('large') or src.get('original')
            dest = OUT / f'{pid}.jpg'
            sz = baixar(url_large, dest)
            print(f'{pid}: {dest.name} ({sz//1024}KB) alt="{alt}"')
        except Exception as e:
            print(f'{pid}: FAIL {e}')
