#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
tahap_a_pool_das.py — Bangun pool kandidat gambar dari 3 query yang lolos.
Output: das_pool.json berisi daftar kandidat {id,url,alt,q}.
"""
import sys, os, json, time
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)) + "/..")
import requests
from pexels_image import PEXELS_KEYS, PEXELS_API

TARGET = os.path.dirname(os.path.abspath(__file__))
QUERIES = ["car", "car mechanic garage", "luxury car"]

def fetch(query):
    for key in PEXELS_KEYS:
        try:
            r = requests.get(PEXELS_API, params={"query": query, "per_page": 15, "orientation": "landscape"},
                             headers={"Authorization": key}, timeout=20)
            print(f"[{query}] status {r.status_code}", flush=True)
            if r.status_code == 200:
                out = []
                for ph in r.json().get("photos", []):
                    src = ph.get("src", {})
                    url = src.get("large2x") or src.get("large") or src.get("original")
                    if url:
                        out.append({"id": str(ph.get("id")), "url": url,
                                    "alt": ph.get("alt") or query, "q": query})
                return out
        except Exception as e:
            print(f"[{query}] err {e}", flush=True)
        time.sleep(1.5)
    return []

def main():
    pool = []
    seen = set()
    for q in QUERIES:
        for c in fetch(q):
            if c["id"] in seen:
                continue
            seen.add(c["id"])
            pool.append(c)
    with open(os.path.join(TARGET, "das_pool.json"), "w") as f:
        json.dump(pool, f, indent=2)
    print(f"\nPOOL: {len(pool)} kandidat unik", flush=True)
    for c in pool[:40]:
        print(f"  {c['id']} [{c['q']}] {c['alt'][:45]}", flush=True)

if __name__ == "__main__":
    main()
