Afegit process_cache_file() i remove_empty_directories()
This commit is contained in:
@@ -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
|
# 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(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é
|
# Obtiene los ficheros de la consulta desde internet o desde la caché
|
||||||
# y los deposita en la carpeta destino, descomprimiendo los archivos necesarios
|
# y los deposita en la carpeta destino, descomprimiendo los archivos necesarios
|
||||||
def get_files():
|
def get_files():
|
||||||
@@ -255,40 +264,32 @@ def get_files():
|
|||||||
last_game_folder = element["root_folder"]
|
last_game_folder = element["root_folder"]
|
||||||
|
|
||||||
try:
|
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"])):
|
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):
|
if os.path.isfile(cache_file):
|
||||||
# Si encuentra el fichero en cache, crea las carpetas de destino y lo copia o lo extrae
|
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)
|
|
||||||
print_status(current_file, total_files, element, total_files_width, status="cached")
|
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:
|
else:
|
||||||
status = "not found "
|
|
||||||
if download_file(element["url"], temp_file):
|
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):
|
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)
|
os.makedirs(cache_subfolder, exist_ok=True)
|
||||||
shutil.copyfile(temp_file, cache_file)
|
shutil.move(temp_file, cache_file)
|
||||||
os.remove(temp_file)
|
|
||||||
# Copia el fichero de la cache al destino
|
# Copia el fichero de la cache al destino
|
||||||
if os.path.isfile(cache_file):
|
if os.path.isfile(cache_file):
|
||||||
os.makedirs(destination_subfolder, exist_ok=True)
|
process_cache_file(cache_file, destination_subfolder, destination_file, element)
|
||||||
if cache_file.endswith(".zip") and element["subfolder"] == "":
|
else:
|
||||||
unzip_file(cache_file, destination_folder)
|
print_status(current_file, total_files, element, total_files_width, status="not found")
|
||||||
else:
|
|
||||||
shutil.copyfile(cache_file, destination_file)
|
|
||||||
print_status(current_file, total_files, element, total_files_width, status=status)
|
|
||||||
|
|
||||||
if wait:
|
if wait:
|
||||||
time.sleep(random.randint(min_wait, max_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:
|
else:
|
||||||
print_status(current_file, total_files, element, total_files_width, status="skipping")
|
print_status(current_file, total_files, element, total_files_width, status="skipping")
|
||||||
|
|
||||||
@@ -354,9 +355,10 @@ def print_elements(mode=0):
|
|||||||
def main():
|
def main():
|
||||||
connect(query_index=3)
|
connect(query_index=3)
|
||||||
process_elements()
|
process_elements()
|
||||||
print_elements(mode=1)
|
#print_elements(mode=1)
|
||||||
clear_destination_folder()
|
clear_destination_folder()
|
||||||
get_files()
|
get_files()
|
||||||
|
remove_empty_directories(destination_path)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|||||||
Reference in New Issue
Block a user