no se... mes merdetes

This commit is contained in:
2025-04-11 07:32:31 +02:00
parent 3a93608306
commit 7eccf2261a
3 changed files with 90 additions and 13 deletions
+20 -2
View File
@@ -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
# Crea enlces simbolicos en vez de copiar los ficheros
CREATE_SYM_LINKS = True
+69 -11
View File
@@ -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 = ["<image>", "<wheel>", "<boxart>", "<screenshot>", "<cartridge>", "<mix>", "<video>", "<marquee>", "<thumbnail />"]
texts_to_omit = [
"<boxart>",
"<boxback>",
"<cartridge>",
"<image>",
"<manual>",
"<marquee>",
"<mix>",
"<screenshot>",
"<thumbnail />",
"<video>",
"<wheel>",
]
# Crear el directorio de destino si no existe
dest_dir = os.path.dirname(dest_path)
@@ -208,7 +267,6 @@ def copy_files_with_structure(data):
def main():
"""Función principal del programa."""
file_list = create_file_list()
# pprint.pprint(file_list, width=200)
for game in file_list:
copy_files_with_structure(game)
+1
View File
@@ -6,6 +6,7 @@ systems_table = {
"atari5200": "atari5200",
"atari7800": "atari7800",
"atarist": "atarist",
"atomiswave": "atomiswave",
"c64": "c64",
"colecovision": "colecovision",
"dreamcast": "dreamcast",