Afegit process_cache_file() i remove_empty_directories()

This commit is contained in:
2024-11-14 11:00:00 +01:00
parent a4bb5790e8
commit d11977aecf
+24 -22
View File
@@ -226,6 +226,15 @@ def get_final_destination_folder(year, root_folder):
# Combina los prefijos y la carpeta raíz para obtener la carpeta de destino final
return os.path.join(prefix1, prefix2, root_folder)
# Crea las carpetas de destino y copia o extrae el archivo de la caché
def process_cache_file(cache_file, destination_subfolder, destination_file, element):
os.makedirs(destination_subfolder, exist_ok=True)
if cache_file.endswith(".zip") and element["subfolder"] == "":
unzip_file(cache_file, destination_subfolder)
else:
shutil.copyfile(cache_file, destination_file)
# Obtiene los ficheros de la consulta desde internet o desde la caché
# y los deposita en la carpeta destino, descomprimiendo los archivos necesarios
def get_files():
@@ -255,40 +264,32 @@ def get_files():
last_game_folder = element["root_folder"]
try:
# Comprueba si ya existe el fichero a descargar
# Si el fichero no existe en la carpeta de destino
if not os.path.isfile(destination_file) and not os.path.isfile(os.path.join(destination_subfolder, element["non_zip_file_name"])):
# Comprueba si ya existe el fichero en la cache
# Si existe en la caché, lo copia
if os.path.isfile(cache_file):
# Si encuentra el fichero en cache, crea las carpetas de destino y lo copia o lo extrae
os.makedirs(destination_subfolder, exist_ok=True)
if cache_file.endswith(".zip") and element["subfolder"] == "":
unzip_file(cache_file, destination_subfolder)
else:
shutil.copyfile(cache_file, destination_file)
process_cache_file(cache_file, destination_subfolder, destination_file, element)
print_status(current_file, total_files, element, total_files_width, status="cached")
# El fichero no está en la cache
# Si no existe en la caché, lo descarga
else:
status = "not found "
if download_file(element["url"], temp_file):
status = "downloaded"
print_status(current_file, total_files, element, total_files_width, status="downloaded")
if os.path.isfile(temp_file):
# Copia el fichero temporal a la cache
# Mueve el fichero temporal descargado a la cache
os.makedirs(cache_subfolder, exist_ok=True)
shutil.copyfile(temp_file, cache_file)
os.remove(temp_file)
shutil.move(temp_file, cache_file)
# Copia el fichero de la cache al destino
if os.path.isfile(cache_file):
os.makedirs(destination_subfolder, exist_ok=True)
if cache_file.endswith(".zip") and element["subfolder"] == "":
unzip_file(cache_file, destination_folder)
else:
shutil.copyfile(cache_file, destination_file)
print_status(current_file, total_files, element, total_files_width, status=status)
process_cache_file(cache_file, destination_subfolder, destination_file, element)
else:
print_status(current_file, total_files, element, total_files_width, status="not found")
if wait:
time.sleep(random.randint(min_wait, max_wait))
# El fichero ya existe en el destino
# Si el fichero ya existe en el destino, no hace nada
else:
print_status(current_file, total_files, element, total_files_width, status="skipping")
@@ -354,9 +355,10 @@ 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)
if __name__ == "__main__":
main()