From e6aa0857e4ab523010d6224addf6c43af8482bf5 Mon Sep 17 00:00:00 2001 From: Sergio Date: Wed, 20 Nov 2024 17:29:11 +0100 Subject: [PATCH] Al ordenar per desarrollador, agrupa els desarrolladors que comencen per numero en la carpeta "0-9" --- zxdb.py | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/zxdb.py b/zxdb.py index 7db8a05..d74afcc 100644 --- a/zxdb.py +++ b/zxdb.py @@ -365,13 +365,15 @@ def get_final_destination_folder(title, year, developer): >>> get_final_destination_folder("Nintendo", 1985, "Super Mario") 'by_developer/N/Nintendo/1985/Super Mario' """ + + # Compone el nombre de la carpeta de destino del juego + game_folder_name = f"{title} ({year})" if SHOULD_SORT_BY_DEVELOPER else f"{title} ({year})({developer})" + game_folder_name = normalize_path(game_folder_name) + # Carpeta basada en los años de vida comercial del spectrum o el tipo de agrupación folder1 = "" if SHOULD_SPLIT_MODERN_AND_CLASSIC: - if year == "none" or year is None or year > LAST_CLASSIC_YEAR: - folder1 = "modern" - else: - folder1 = "classics" + folder1 = "modern" if year == "none" or year is None or year > LAST_CLASSIC_YEAR else "classics" elif SHOULD_SORT_BY_DEVELOPER: folder1 = "by_developer" elif SHOULD_SORT_BY_YEAR: @@ -381,23 +383,17 @@ def get_final_destination_folder(title, year, developer): folder2 = "" if SHOULD_SORT_BY_DEVELOPER: developer = developer or "" - folder2 = os.path.join(developer[0].upper(), developer) + folder2 = os.path.join("0-9", developer) if developer[0].isdigit() else os.path.join(developer[0].upper(), developer) # Carpeta basada en el año de lanzamiento folder3 = "" if SHOULD_SORT_BY_YEAR: folder3 = str(year) if year not in [None, "none"] else "unknown" - # Carpeta basada en la primera letra del nombre de la carpeta raíz + # Carpeta basada en la primera letra del nombre de la carpeta de destino del juego folder4 = "" if SHOULD_SORT_BY_LETTER: - if game_folder_name[0].isdigit(): - folder4 = "0-9" - else: - folder4 = game_folder_name[0].upper() - - # Compone el nombre de la carpeta de destino del juego - game_folder_name = f"{title} ({year})" if SHOULD_SORT_BY_DEVELOPER else f"{title} ({year})({developer})" + folder4 = "0-9" if game_folder_name[0].isdigit() else game_folder_name[0].upper() # Combina los prefijos y la carpeta raíz para obtener la carpeta de destino final return os.path.join(folder1, folder2, folder3, folder4, game_folder_name) @@ -515,7 +511,7 @@ def normalize_path(path): Comportamiento: - Reemplaza los caracteres ilegales en la cadena de texto con un carácter vacío. - - Los caracteres ilegales incluyen: <, >, :, ", /, \, |, ?, *. + - Los caracteres ilegales incluyen: <, >, :, ", /, \\, |, ?, *. - Utiliza la función unidecode para manejar caracteres Unicode. Ejemplo: @@ -528,6 +524,7 @@ def normalize_path(path): path = unidecode(path.replace(char, replace_with)) return path + def remove_empty_directories(path): """ Elimina los subdirectorios vacíos.