From 7eccf2261af1de7cdf6c1b3064f700aef5fa3be7 Mon Sep 17 00:00:00 2001 From: Sergio Date: Fri, 11 Apr 2025 07:32:31 +0200 Subject: [PATCH] no se... mes merdetes --- config.py | 22 ++++++++++-- scrapped_media_mover.py | 80 +++++++++++++++++++++++++++++++++++------ systems_definitions.py | 1 + 3 files changed, 90 insertions(+), 13 deletions(-) diff --git a/config.py b/config.py index 904f967..c9fb1b7 100644 --- a/config.py +++ b/config.py @@ -1,8 +1,26 @@ +# Directorios de origen y destino SOURCE_FOLDER = "/home/sergio/roms/batocera_arrm_scrapped" DEST_FOLDER = "/home/sergio/roms/es-de_from_batocera" +# Indica si se copiaran tambien los videos GET_VIDEOS = False -SYSTEMS = ["ngp", "ngpc"] +# Si está vacío, procesa todos los sistemas +SYSTEMS = [ + "pcenginecd", + "psp", + "psx", + "psx", + "saturn", + "segacd", + "sg1000", + "snes", + "supergrafx", + "supergrafx", + "virtualboy", + "wswan", + "wswanc", + ] -CREATE_SYM_LINKS = True \ No newline at end of file +# Crea enlces simbolicos en vez de copiar los ficheros +CREATE_SYM_LINKS = True diff --git a/scrapped_media_mover.py b/scrapped_media_mover.py index 659bac1..d8cbef8 100644 --- a/scrapped_media_mover.py +++ b/scrapped_media_mover.py @@ -7,14 +7,19 @@ import shutil def list_directories(path): """ - Devuelve una lista de directorios en la ruta especificada - que se encuentren en la lista SYSTEMS. + Devuelve una lista de directorios en la ruta especificada. + Si SYSTEMS no está vacío, filtra por directorios que estén en SYSTEMS. """ - # Lista los nombres en la ruta, verifica si son directorios, y si están en SYSTEMS - directories = [ - name for name in os.listdir(path) - if os.path.isdir(os.path.join(path, name)) and name in SYSTEMS - ] + if not SYSTEMS: # Si SYSTEMS está vacío, devolver todos los directorios + directories = [ + name for name in os.listdir(path) + if os.path.isdir(os.path.join(path, name)) + ] + else: + directories = [ + name for name in os.listdir(path) + if os.path.isdir(os.path.join(path, name)) and name in SYSTEMS + ] return directories @@ -48,6 +53,48 @@ def find_file_extension(folder, base_name): def create_file_list(): + """ + Crea una lista de archivos basándose en los sistemas translatables + y las carpetas de origen y destino especificadas. + + Procesa cada sistema en la lista filtrada: + - Verifica la existencia de la carpeta "downloaded_images". + - Agrega los archivos (ROMs) de cada sistema, excluyendo los archivos .xml. + - Gestiona las ROMs y crea un diccionario de medios asociado a cada archivo. + - Agrega el archivo "gamelist.xml" si está presente en el sistema. + + Retorna: + list: Una lista de diccionarios, donde cada diccionario representa + un archivo ROM o un gamelist, incluyendo información de origen y destino. + + Nota: + Usa funciones auxiliares como `filter_translatable_systems`, + `list_directories`, `directory_exists`, `list_files`, + `get_file_name_without_extension`, `find_file_extension` y otras. + + Ejemplo de entrada: + - SOURCE_FOLDER: Carpeta donde se encuentran los sistemas originales. + - DEST_FOLDER: Carpeta donde se copiarán las ROMs y medios. + - media_table: Diccionario con las configuraciones de medios. + + Ejemplo de salida: + [ + { + "name": "rom_name", + "rom_source": "ruta/origen/rom", + "rom_dest": "ruta/destino/rom", + "media": { + "key_source": "ruta/origen/medio", + "key_dest": "ruta/destino/medio" + } + }, + { + "name": "gamelist", + "rom_source": "ruta/origen/gamelist.xml", + "rom_dest": "ruta/destino/gamelist.xml" + } + ] + """ system_list = filter_translatable_systems(list_directories(SOURCE_FOLDER)) file_list = [] @@ -69,7 +116,7 @@ def create_file_list(): # Configuración básica del rom element["name"] = rom_name element["rom_source"] = os.path.join(folder, rom) - element["rom_dest"] = os.path.join(DEST_FOLDER, "ROMs", system, rom) + element["rom_dest"] = os.path.join(DEST_FOLDER, "ROMs", get_system_name(system), rom) # Crear el diccionario "media" con dos claves por entrada media_dict = {} @@ -99,7 +146,7 @@ def create_file_list(): element = {} element["name"] = "gamelist" element["rom_source"] = os.path.join(folder, file_name) - element["rom_dest"] = os.path.join(DEST_FOLDER, "ES-DE", "gamelists", system, file_name) + element["rom_dest"] = os.path.join(DEST_FOLDER, "ES-DE", "gamelists", get_system_name(system), file_name) file_list.append(element) return file_list @@ -163,7 +210,19 @@ def copy_xml_file(source_path, dest_path): Copia un archivo XML omitiendo las líneas que contienen ciertos textos no deseados. """ # Lista de textos a omitir - texts_to_omit = ["", "", "", "", "", "", "