from config import ROM_FOLDERS, CONFIG_FOLDERS, SYSTEMS, ES_DE_MEDIA, BATOCERA_MEDIA, RELACION import os import shutil import time def getRomPath(frontend): for folder in ROM_FOLDERS: if folder["frontend"] == frontend: return folder["path"] return None def getConfigPath(frontend): for folder in CONFIG_FOLDERS: if folder["frontend"] == frontend: return folder["path"] return None def getSystemShortName(name, frontend): for system in SYSTEMS: if system["name"].lower() == name.lower(): return system[frontend] return None def verificar_sistemas_y_carpetas(sistemas, carpetas): resultados = [] for sistema in sistemas: if sistema["batocera"] and sistema["es-de"]: carpetas_existentes = True for carpeta in carpetas: ruta = os.path.join(carpeta["path"], sistema[carpeta["frontend"]]) if not os.path.isdir(ruta): carpetas_existentes = False break resultados.append((sistema["name"], carpetas_existentes)) return resultados def copiar_archivos(origen, destino): try: # Crear la carpeta de destino si no existe if not os.path.exists(origen): return if not os.path.exists(destino): os.makedirs(destino) # Copiar todos los archivos for archivo in os.listdir(origen): #print(archivo) ruta_origen = os.path.join(origen, archivo) if os.path.isfile(ruta_origen): for relacion in RELACION: if relacion["batocera"] in archivo: final_file = archivo.replace(relacion["batocera"][:-1], "") destino_carpeta = os.path.join(destino, relacion["es-de"]) if not os.path.exists(destino_carpeta): os.makedirs(destino_carpeta) ruta_destino = os.path.join(destino_carpeta, final_file) if not os.path.exists(ruta_destino): shutil.copy2(ruta_origen, ruta_destino) print(f"Archivo {archivo} copiado a {ruta_destino}") break except Exception as e: print(f"Error al copiar archivos: {e}") def copy_media(system): batocera_short_name = getSystemShortName(system, "batocera") es_de_short_name = getSystemShortName(system, "es-de") origen = os.path.join(getRomPath("batocera"), batocera_short_name, getConfigPath("batocera")) destino = os.path.join(getConfigPath("es-de"), "downloaded_media", es_de_short_name) #print(origen) #print(destino) copiar_archivos(origen, destino) def main(): # Ejecutar y mostrar resultados resultados = verificar_sistemas_y_carpetas(SYSTEMS, ROM_FOLDERS) #resultados = [("ATARI LYNX", True)] for sistema, existe in resultados: if existe: print(f"\nCopiando medios del sistema: {sistema.upper()}") time.sleep(2) copy_media(sistema) if __name__ == "__main__": main()