import os
from tkinter import Tk, filedialog
from datos.Config import ConfigManager

config = ConfigManager()

def deleteImages(folder):
    lista_archivos = os.listdir(folder)
    # Verificar si la carpeta está vacía
    if not lista_archivos:
        return "No images found in the folder."
    
    # Obtener todas las imágenes en la carpeta
    for archivo in lista_archivos:
        if archivo.endswith((".png", ".jpg", ".jpeg")):
            os.remove(os.path.join(folder, archivo))

    return "Images deleted successfully."

def cargarImagesArchivos(folder):
    imagenes = []

    if not os.path.exists(folder):
        return "The folder does not exist.", imagenes
     
    lista_archivos = os.listdir(folder)
    # Verificar si la carpeta está vacía
    if not lista_archivos:
        return "No images found in the folder.", imagenes
    # Obtener todas las imágenes en la carpeta
    for archivo in lista_archivos:
        archivo_path = os.path.join(folder, archivo)
        if os.path.isfile(archivo_path) and archivo.endswith((".png", ".jpg", ".jpeg", ".bmp", ".tiff")):
            imagenes.append(archivo_path)

    imagenes.sort(key=lambda x: int(''.join(filter(str.isdigit, x))))
    
    return "Images loaded successfully.", imagenes


def seleccionar_json_callback(output):
    
    Tk().withdraw()  # Oculta la ventana principal de tkinter
    archivo_json = filedialog.askopenfilename(title="Select JSON File", filetypes=[("JSON files", "*.json")])

    if archivo_json:
        output.set_output("JSON file selected successfully.")
        return 0, archivo_json

    output.set_output("Error selecting the JSON file.")
    
    return -1, archivo_json

def seleccionar_video_callback(output):

    Tk().withdraw()  # Oculta la ventana principal de tkinter
    archivo_video = filedialog.askopenfilename(title="Select Video", filetypes=[("Video files", "*.mp4;*.mov;*.avi")])

    if os.path.exists(archivo_video) and os.path.isfile(archivo_video):
        output.set_output("Video selected successfully.")
        return archivo_video

    output.set_output("Error selecting the video.")

    return -1

def seleccionar_folder_callback(output):

    Tk().withdraw()  # Oculta la ventana principal de tkinter
    folder = filedialog.askdirectory(title="Select Folder", mustexist=True)

    if os.path.exists(folder) and os.path.isdir(folder):
        output.set_output("Folder selected successfully.")
        return 0, folder
    
    else:
        output.set_output("Error selecting the folder.")

        return -1, folder