se termina la descarga de los adjuntos y solo se deja los mails con adjuntos pdf y xml

This commit is contained in:
George committed 2026-06-01 18:05:44 -05:00
1 parent c08554e775
commit a29a44e361
4 files changed
+68 -31

No files matched your search

+33 -18
View File
@@ -28,26 +28,41 @@ def quitar_correos_ya_registrados_en_base_de_datos(emails):
########################################################
def descomprimir_adjuntos(emails, ruta):
"""
Esta funcion recibe la lista de emails y por cada no recorre sus adjuntos
si encuentra un adjunto .zip lo descomprime en la ruta especificada
y actualiza la lista de archivos agregar estos nuevos documentos al lsitado de adjuntos del email
Busca adjuntos ZIP, los descomprime y agrega los archivos
extraídos a la lista de adjuntos del correo.
"""
archivos_finales = []
for archivo in archivos:
ruta_archivo = os.path.join(ruta, archivo)
if archivo.lower().endswith('.zip') and os.path.exists(ruta_archivo):
try:
with zipfile.ZipFile(ruta_archivo, 'r') as zip_ref:
nombres_extraidos = zip_ref.namelist()
zip_ref.extractall(ruta)
archivos_finales.extend(nombres_extraidos)
except Exception as e:
print(f" ⚠️ Error descomprimiendo {archivo}: {e}")
archivos_finales.append(archivo)
else:
archivos_finales.append(archivo)
return archivos_finales
try:
for email in emails:
nuevos_adjuntos = []
for adjunto in list(email["adjuntos"]):
if not adjunto.lower().endswith(".zip"):
continue
ruta_zip = os.path.join(ruta, adjunto)
if not os.path.exists(ruta_zip):
print(f"⚠️ No existe: {ruta_zip}")
continue
try:
with zipfile.ZipFile(ruta_zip, "r") as zip_ref:
nombres_extraidos = [
nombre
for nombre in zip_ref.namelist()
if not nombre.endswith("/")
]
zip_ref.extractall(ruta)
nuevos_adjuntos.extend(nombres_extraidos)
print(
f"📦 {adjunto}: {len(nombres_extraidos)} archivos extraídos"
)
except Exception as e:
print(f"⚠️ Error descomprimiendo {adjunto}: {e}")
email["adjuntos"].extend(nuevos_adjuntos)
return emails
except Exception as ex:
print(f"❌ Error general: {ex}")
return emails
########################################################
def filtrar_archivos_validos(archivos):