Al ordenar per desarrollador, agrupa els desarrolladors que comencen per numero en la carpeta "0-9"

This commit is contained in:
2024-11-20 17:29:11 +01:00
parent 5530326300
commit e6aa0857e4
+11 -14
View File
@@ -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.