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

41 lines
2.2 KiB
Markdown

# 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_directory``input_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`).