From 3323ae9110fc37fe5f8468c8c2ef5c1a833bf1c6 Mon Sep 17 00:00:00 2001 From: Sergio Date: Sun, 17 Nov 2024 16:40:40 +0100 Subject: [PATCH] Afegit ordenat per any --- README.MD | 2 ++ queries.sql | 9 +++++++-- zxdb.py | 29 +++++++++++++++++++---------- 3 files changed, 28 insertions(+), 12 deletions(-) diff --git a/README.MD b/README.MD index 1543640..8d9ba61 100644 --- a/README.MD +++ b/README.MD @@ -43,7 +43,9 @@ Exemple de fitxer .env SHOULD_CLEAR_DESTINATION_PATH=True SHOULD_SPLIT_MODERN_AND_CLASSIC=True + SHOULD_SORT_BY_YEAR=True SHOULD_SORT_BY_LETTER=True + WAIT=True MIN_WAIT=2 MAX_WAIT=4 diff --git a/queries.sql b/queries.sql index 942ae28..c225411 100644 --- a/queries.sql +++ b/queries.sql @@ -138,7 +138,7 @@ WHERE ORDER BY e.title; --- Consulta 3: ZXNEXT - Devuelve juegos de ZX-Spectrum y solo archivos de cinta o pokes +-- Consulta 3: ZXNEXT - Devuelve juegos de ZX-Spectrum y solo archivos de cinta disco o pokes SELECT DISTINCT e.title, l.name, @@ -175,7 +175,12 @@ WHERE OR e.availabletype_id = 'D' ) AND ( - f.text IN ('Tape image', 'Snapshot image', 'POK pokes file') + f.text IN ( + 'Tape image', + 'Disk image', + 'Snapshot image', + 'POK pokes file' + ) ) AND r.release_seq = 0 AND ( diff --git a/zxdb.py b/zxdb.py index 59e9d71..fc87097 100644 --- a/zxdb.py +++ b/zxdb.py @@ -49,6 +49,7 @@ temp_file = os.getenv('TEMP_FILE') # Parametros de configuración should_clear_destination_path = os.getenv('SHOULD_CLEAR_DESTINATION_PATH') == 'True' # Establece si se limpia primero la carpeta de destino should_split_modern_and_classic = os.getenv('SHOULD_SPLIT_MODERN_AND_CLASSIC') == 'True'# Separa los juegos en dos carpetas a partir de un año especificado +should_sort_by_year = os.getenv('SHOULD_SORT_BY_YEAR') == 'True' # Separa los juegos por carpetas en función de su año de lanzamiento should_sort_by_letter = os.getenv('SHOULD_SORT_BY_LETTER') == 'True' # Separa los juegos por carpetas en función de su primera letra wait = os.getenv('WAIT') == 'True' # Establece una pausa aleatoria entre descargas min_wait = int(os.getenv('MIN_WAIT')) # Cantidad de segundos mínima a esperar entre descargas @@ -201,24 +202,32 @@ def print_status(current_file, total_files, element, total_files_width, status=" # Compone la carpeta de destino en función de varios parámetros def get_final_destination_folder(year, root_folder): - # Prefijo basado en el año - prefix1 = "" + # Carpeta basada en los años de vida comercial del spectrum + folder1 = "" if should_split_modern_and_classic: if year == "none" or year is None or year > last_classic_year: - prefix1 = "modern" + folder1 = "modern" else: - prefix1 = "classics" + folder1 = "classics" - # Prefijo basado en la primera letra del nombre de la carpeta raíz - prefix2 = "" + # Carpeta basada en el año de lanzamiento + folder2 = "" + if should_sort_by_year: + folder2 = str(year) if year not in [None, "none"] else "unknown" + + # Carpeta basada en la primera letra del nombre de la carpeta raíz + folder3 = "" if should_sort_by_letter: if root_folder[0].isdigit(): - prefix2 = "0-9" + folder3 = "0-9" else: - prefix2 = root_folder[0].upper() + folder3 = root_folder[0].upper() + + # Asegurarse de que root_folder es una cadena + root_folder = root_folder or "" # Combina los prefijos y la carpeta raíz para obtener la carpeta de destino final - return os.path.join(prefix1, prefix2, root_folder) + return os.path.join(folder1, folder2, folder3, root_folder) # Crea las carpetas de destino y copia o extrae el archivo de la caché @@ -349,7 +358,7 @@ def print_elements(mode=0): def main(): connect(query_index=3) process_elements() - print_elements(mode=1) + #print_elements(mode=1) clear_destination_folder() get_files() remove_empty_directories(destination_path)