ParamManagerScripts/backend/script_groups/EmailCrono/.doc/MemoriaDeEvolucion.md

2.2 KiB

Memoria de Evolución - Procesador de Emails a Cronología

Descripcion de los scripts Procesador de Emails a Cronología

Este script procesa archivos de correo electrónico (.eml) para extraer su contenido, gestionar adjuntos y generar un archivo Markdown que presenta los mensajes en orden cronológico inverso.

Lógica Principal:

Beautify: Carga reglas de embellecimiento de texto desde config/beautify_rules.json para limpiar el contenido de los correos. Descubrimiento: Busca todos los archivos .eml en el directorio de trabajo configurado.

Procesamiento Individual: Itera sobre cada archivo .eml encontrado. Utiliza utils.email_parser.procesar_eml para extraer metadatos (fecha, asunto, remitente, destinatarios), contenido del cuerpo y guardar los archivos adjuntos en la carpeta especificada. Calcula un hash para cada mensaje para detectar duplicados.

Si un mensaje es nuevo (no duplicado):

Aplica las reglas de BeautifyProcessor al contenido del cuerpo. Añade el mensaje procesado a una lista.

Ordenación: Ordena la lista de mensajes únicos por fecha, del más reciente al más antiguo.

Generación de Índice: Crea una sección de índice en formato Markdown con enlaces internos a cada mensaje. Salida Markdown: Escribe el índice seguido del contenido formateado en Markdown de cada mensaje en el archivo de salida configurado (ej. cronologia.md).

2025-08-08 — Inversión de directorios (entrada/salida)

  • Decisión: Alinear con la guía backend_setup.md para que:
    • working_directory sea el directorio de salida (resultado), donde se escribe cronologia.md y se guardan los adjuntos.
    • level3.input_directory sea el directorio de entrada donde se leen los .eml.
  • Cambios:
    • esquema_work.json: se renombra output_directoryinput_directory y se actualizan title/description.
    • x1.py:
      • Lee level3.input_directory como entrada.
      • Escribe cronologia_file y attachments_dir dentro de working_directory.
      • Crea directorios de salida si no existen.
      • Se corrigen lints (E402 y líneas largas) sin alterar lógica.
  • Impacto:
    • Los work_dir.json existentes deben actualizar la clave a input_directory.
    • No hay cambios en claves de level2 (cronologia_file, attachments_dir).