import os
import json
from PIL import Image

SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
FULL_DIR = os.path.join(SCRIPT_DIR, "..", "full")
THUMB_DIR = os.path.join(SCRIPT_DIR, "..", "thumbs")
KEP_FILE = os.path.join(SCRIPT_DIR, "kepek.json")
THUMB_MAX_SIZE = (300, 300)

def main():
    print("Bélyegképek pótlása (biztonsági frissítés)...")
    if not os.path.exists(THUMB_DIR):
        os.makedirs(THUMB_DIR)

    if not os.path.exists(KEP_FILE):
        print("Nincs kepek.json, nincs mit tenni.")
        return

    with open(KEP_FILE, 'r', encoding='utf-8') as f:
        kepek_adatok = json.load(f)

    meglevo_thumbs = set(os.listdir(THUMB_DIR))
    generalva = 0
    hibak = 0

    for kep in kepek_adatok:
        fajlnev = kep['fajlnev']
        thumb_name = f"tn_{fajlnev}"
        
        if thumb_name not in meglevo_thumbs:
            full_path = os.path.join(FULL_DIR, fajlnev)
            thumb_path = os.path.join(THUMB_DIR, thumb_name)
            
            if os.path.exists(full_path):
                try:
                    with Image.open(full_path) as img:
                        # Ha RGBA vagy P, át kell konvertálni RGB-be, hogy a JPEG mentés ne dobjon hibát
                        if img.mode in ('RGBA', 'P', 'CMYK'):
                            img = img.convert('RGB')
                        img.thumbnail(THUMB_MAX_SIZE)
                        img.save(thumb_path)
                        generalva += 1
                        print(f"Legenerálva: {thumb_name}")
                except Exception as e:
                    print(f"Hiba a kép feldolgozásakor ({fajlnev}): {e}")
                    hibak += 1

    if generalva > 0:
        print(f"Sikeresen pótolva {generalva} hiányzó bélyegkép.")
    else:
        print("Minden bélyegkép naprakész, nincs hiányzó.")
        
    if hibak > 0:
        print(f"Figyelem: {hibak} kép feldolgozása során hiba történt.")

if __name__ == "__main__":
    main()
