Skip to content

Commit

Permalink
Add counters and folder utils
Browse files Browse the repository at this point in the history
  • Loading branch information
dacacioa committed Nov 11, 2024
1 parent 1e91245 commit d13f514
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 14 deletions.
55 changes: 41 additions & 14 deletions seqsl.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
import os
import argparse
import logging
from qrzapi import consulta_email, get_api_key
from transform import extraer_campos, create_pdf
from gmail import send_email_with_attachment
from utils.qrzapi import consulta_email, get_api_key
from utils.transform import extraer_campos, create_pdf
from utils.gmail import send_email_with_attachment

# Cargar la configuración desde config.ini
config = configparser.ConfigParser()
Expand Down Expand Up @@ -32,6 +32,11 @@

apikey = get_api_key(config['qrz']['username'], config['qrz']['password'])

# Inicializar contadores y lista de fallos
emails_enviados = 0
emails_fallidos = 0
callsign_fallidos = []

if __name__ == "__main__":
# Usar el archivo QSL especificado por el usuario
image_path = args.qsl_file
Expand All @@ -54,22 +59,44 @@
output_filename = os.path.join(output_folder, f"{safe_call_sign}.pdf") # Ruta completa del archivo
create_pdf(output_filename, image_path, registro)
qlsfile = output_folder + '/' + safe_call_sign + '.pdf'
subject = 'New SQL card from ' + config['qrz']['username'] + ' to ' + safe_call_sign
send_email_with_attachment(
config['gmail']['sender_email'],
email,
subject,
config['gmail']['mail_body'],
qlsfile,
config['gmail']['sender_password'],
config['gmail']['smtp_server']
)
subject = 'New QSL card from ' + config['qrz']['username'] + ' to ' + safe_call_sign

try:
# Intentar enviar el email con adjunto
send_email_with_attachment(
config['gmail']['sender_email'],
email,
subject,
config['gmail']['mail_body'],
qlsfile,
config['gmail']['sender_password'],
config['gmail']['smtp_server']
)
emails_enviados += 1 # Incrementar el contador de emails enviados exitosamente
logging.info(f"Email enviado exitosamente a {safe_call_sign}.")
except Exception as e:
# En caso de fallo al enviar, actualizar el contador y la lista de fallos
emails_fallidos += 1
callsign_fallidos.append(safe_call_sign)
logging.error(f"Error al enviar email a {safe_call_sign}: {e}")

# Eliminar el archivo PDF después de enviarlo
# Eliminar el archivo PDF después de enviarlo o al intentarlo
try:
os.remove(qlsfile)
logging.info(f"Archivo {qlsfile} eliminado exitosamente.")
except OSError as e:
logging.error(f"Error al eliminar el archivo {qlsfile}: {e}")
else:
# Si no se pudo obtener el email
emails_fallidos += 1
callsign_fallidos.append(safe_call_sign)
logging.warning(f"No se pudo obtener el email para el callsign {safe_call_sign}.")

# Mostrar resumen de envíos al finalizar el proceso
logging.info("Resumen de envío de emails:")
logging.info(f"Emails enviados exitosamente: {emails_enviados}")
logging.info(f"Emails fallidos: {emails_fallidos}")
if callsign_fallidos:
logging.info("Lista de callsigns fallidos:")
for callsign in callsign_fallidos:
logging.info(f" - {callsign}")
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit d13f514

Please sign in to comment.