diff --git a/backend/script_groups/EmailCrono/.doc/MemoriaDeEvolucion.md b/backend/script_groups/EmailCrono/.doc/MemoriaDeEvolucion.md index 38de094..b8da862 100644 --- a/backend/script_groups/EmailCrono/.doc/MemoriaDeEvolucion.md +++ b/backend/script_groups/EmailCrono/.doc/MemoriaDeEvolucion.md @@ -23,3 +23,19 @@ Ordenación: Ordena la lista de mensajes únicos por fecha, del más reciente al 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`). \ No newline at end of file diff --git a/backend/script_groups/EmailCrono/esquema_work.json b/backend/script_groups/EmailCrono/esquema_work.json index 1b887a1..0397c15 100644 --- a/backend/script_groups/EmailCrono/esquema_work.json +++ b/backend/script_groups/EmailCrono/esquema_work.json @@ -1,11 +1,11 @@ { "type": "object", "properties": { - "output_directory": { + "input_directory": { "type": "string", - "format": "directory", - "title": "Directorio donde escribir el archivo de cronologia", - "description": "Lugar para el archivo cronologia.md" + "title": "Directorio donde leer los emails (.eml)", + "description": "Carpeta de entrada con los archivos .eml a procesar", + "format": "directory" } } } \ No newline at end of file diff --git a/backend/script_groups/EmailCrono/script_config.json b/backend/script_groups/EmailCrono/script_config.json index 1c52339..c1e3409 100644 --- a/backend/script_groups/EmailCrono/script_config.json +++ b/backend/script_groups/EmailCrono/script_config.json @@ -8,7 +8,7 @@ "cronologia_file": "cronologia.md" }, "level3": { - "output_directory": "C:\\Users\\migue\\OneDrive\\Miguel\\Obsidean\\Trabajo\\VM\\03-VM\\45 - HENKEL - VM Auto Changeover" + "input_directory": "C:\\Trabajo\\SIDEL\\17 - E5.006880 - Modifica O&U - RSC098\\Reporte\\Emails" }, - "working_directory": "D:\\Trabajo\\VM\\45 - HENKEL - VM Auto Changeover\\Entregado por VM\\01 - 26-07-2025 Max - Emails" + "working_directory": "C:\\Users\\migue\\OneDrive\\Miguel\\Obsidean\\Trabajo\\VM\\04-SIDEL\\17 - E5.006880 - Modifica O&U - RSC098" } \ No newline at end of file diff --git a/backend/script_groups/EmailCrono/work_dir.json b/backend/script_groups/EmailCrono/work_dir.json index cb42166..5203193 100644 --- a/backend/script_groups/EmailCrono/work_dir.json +++ b/backend/script_groups/EmailCrono/work_dir.json @@ -1,6 +1,9 @@ { - "path": "D:\\Trabajo\\VM\\45 - HENKEL - VM Auto Changeover\\Entregado por VM\\01 - 26-07-2025 Max - Emails", + "path": "C:\\Users\\migue\\OneDrive\\Miguel\\Obsidean\\Trabajo\\VM\\04-SIDEL\\17 - E5.006880 - Modifica O&U - RSC098", "history": [ + "C:\\Users\\migue\\OneDrive\\Miguel\\Obsidean\\Trabajo\\VM\\04-SIDEL\\17 - E5.006880 - Modifica O&U - RSC098", + "C:\\Trabajo\\SIDEL\\17 - E5.006880 - Modifica O&U - RSC098\\Reporte\\Emails", + "C:\\Trabajo\\SIDEL\\17 - E5.006880 - Modifica O&U - RSC098", "D:\\Trabajo\\VM\\45 - HENKEL - VM Auto Changeover\\Entregado por VM\\01 - 26-07-2025 Max - Emails" ] } \ No newline at end of file diff --git a/backend/script_groups/EmailCrono/x1.py b/backend/script_groups/EmailCrono/x1.py index 32995b5..f1c7f63 100644 --- a/backend/script_groups/EmailCrono/x1.py +++ b/backend/script_groups/EmailCrono/x1.py @@ -1,5 +1,6 @@ """ -Script para desensamblar los emails y generar un archivo de texto con la cronología de los mensajes. +Script para desensamblar emails y generar un archivo Markdown con la +cronología de los mensajes. """ import os @@ -12,7 +13,7 @@ script_root = os.path.dirname( os.path.dirname(os.path.dirname(os.path.dirname(__file__))) ) sys.path.append(script_root) -from backend.script_utils import load_configuration +from backend.script_utils import load_configuration # noqa: E402 # Forzar UTF-8 en la salida estándar sys.stdout.reconfigure(encoding="utf-8") @@ -37,14 +38,16 @@ def main(): # Verificar si la configuración se cargó según backend_setup.md if not configs: - print("Error: No se pudo cargar la configuración. Verificar script_config.json") + print( + "Error: No se pudo cargar la configuración. " "Verificar script_config.json" + ) sys.stdout.flush() return print("✅ Configuración cargada exitosamente") sys.stdout.flush() - # Obtener working directory + # Obtener directorio de resultados/salida (working_directory) working_directory = configs.get("working_directory", ".") # Obtener configuraciones de nivel 2 (grupo) @@ -53,20 +56,17 @@ def main(): attachments_dir = group_config.get("attachments_dir", "adjuntos") work_config = configs.get("level3", {}) - output_directory = work_config.get("output_directory", ".") + # Directorio de ENTRADA (emails .eml) provisto por level3 + input_dir = work_config.get("input_directory", ".") - # Construir rutas absolutas - input_dir = ( - working_directory # El directorio de trabajo es el directorio de entrada - ) - output_file = os.path.join(output_directory, cronologia_file) + # Construir rutas de salida en working_directory + output_file = os.path.join(working_directory, cronologia_file) attachments_path = os.path.join(working_directory, attachments_dir) # Debug prints - print(f"Working directory: {working_directory}") + print(f"Working/Output directory: {working_directory}") print(f"Input directory: {input_dir}") - print(f"Output directory: {output_directory}") - print(f"Cronologia file: {output_file}") + print(f"Output file: {output_file}") print(f"Attachments directory: {attachments_path}") sys.stdout.flush() @@ -77,7 +77,8 @@ def main(): print(f"Beautify rules file: {beautify_rules}") sys.stdout.flush() - # Ensure directories exist + # Asegurar directorios de salida + os.makedirs(working_directory, exist_ok=True) os.makedirs(attachments_path, exist_ok=True) # Check if input directory exists and has files @@ -116,7 +117,8 @@ def main(): # Verificar duplicados y aplicar beautify solo a los mensajes nuevos for i, msg in enumerate(nuevos_mensajes): - print(f"\n--- Message {i+1}/{len(nuevos_mensajes)} from {archivo.name} ---") + print("") + print(f"--- Msg {i+1}/{len(nuevos_mensajes)} from " f"{archivo.name} ---") print(f"Remitente: {msg.remitente}") print(f"Fecha: {msg.fecha}") print(f"Subject: {msg.subject}") @@ -135,7 +137,8 @@ def main(): else: print("⚠ DUPLICADO - Ya existe un mensaje con este hash") mensajes_duplicados += 1 - # Buscar el mensaje duplicado para mostrar información detallada + # Buscar el mensaje duplicado para mostrar + # información detallada for existing_msg in mensajes: if existing_msg.hash == msg.hash: print(" 📋 Comparación de mensajes duplicados:") diff --git a/data/log.txt b/data/log.txt index 38f77d4..ac3059a 100644 --- a/data/log.txt +++ b/data/log.txt @@ -1 +1,107 @@ -[11:24:53] 🔄 Actualizados 3 de 4 archivos backend_setup.md +[11:43:49] Iniciando ejecución de x1.py en C:\Users\migue\OneDrive\Miguel\Obsidean\Trabajo\VM\04-SIDEL\17 - E5.006880 - Modifica O&U - RSC098... +[11:43:49] ✅ Configuración cargada exitosamente +[11:43:49] Working/Output directory: C:\Users\migue\OneDrive\Miguel\Obsidean\Trabajo\VM\04-SIDEL\17 - E5.006880 - Modifica O&U - RSC098 +[11:43:49] Input directory: C:\Trabajo\SIDEL\17 - E5.006880 - Modifica O&U - RSC098\Reporte\Emails +[11:43:49] Output file: C:\Users\migue\OneDrive\Miguel\Obsidean\Trabajo\VM\04-SIDEL\17 - E5.006880 - Modifica O&U - RSC098\cronologia.md +[11:43:49] Attachments directory: C:\Users\migue\OneDrive\Miguel\Obsidean\Trabajo\VM\04-SIDEL\17 - E5.006880 - Modifica O&U - RSC098\adjuntos +[11:43:49] Beautify rules file: D:\Proyectos\Scripts\ParamManagerScripts\backend\script_groups\EmailCrono\config\beautify_rules.json +[11:43:49] Found 1 .eml files +[11:43:49] Creando cronología nueva (archivo se sobrescribirá) +[11:43:49] ============================================================ +[11:43:49] Processing file: C:\Trabajo\SIDEL\17 - E5.006880 - Modifica O&U - RSC098\Reporte\Emails\R_ E5.006880 - RSC098 - Nigerian Breweries_ URGENT.eml +[11:43:49] 📧 Abriendo archivo: C:\Trabajo\SIDEL\17 - E5.006880 - Modifica O&U - RSC098\Reporte\Emails\R_ E5.006880 - RSC098 - Nigerian Breweries_ URGENT.eml +[11:43:49] ✉️ Mensaje extraído: +[11:43:49] - Subject: R: {EXT} R: E5.006880 - RSC098 - Nigerian Breweries: URGENT +[11:43:49] - Remitente: "Passera, Alessandro" +[11:43:49] - Fecha: 2025-08-08 07:49:28 +[11:43:49] - Adjuntos: 0 archivos +[11:43:49] - Contenido: 4735 caracteres +[11:43:49] - Hash generado: 48f94bf24945f73bc08c1c0cf8c1e8bb +[11:43:49] ✉️ Mensaje extraído: +[11:43:49] - Subject: RE: {EXT} R: E5.006880 - RSC098 - Nigerian Breweries: URGENT +[11:43:49] - Remitente: "Bii, Vickodyne" +[11:43:49] - Fecha: 2025-08-08 05:46:30 +[11:43:49] - Adjuntos: 0 archivos +[11:43:49] - Contenido: 4259 caracteres +[11:43:49] - Hash generado: 82709d4677b90d79bb02e13cfe86924e +[11:43:49] ✉️ Mensaje extraído: +[11:43:49] - Subject: R: E5.006880 - RSC098 - Nigerian Breweries: URGENT +[11:43:49] - Remitente: "walter.orsi@teknors.com" +[11:43:49] - Fecha: 2025-08-07 15:55:58 +[11:43:49] - Adjuntos: 0 archivos +[11:43:49] - Contenido: 3235 caracteres +[11:43:49] - Hash generado: cceec9818de1a4491214af4b6d96e143 +[11:43:49] ✉️ Mensaje extraído: +[11:43:49] - Subject: R: E5.006880 - RSC098 - Nigerian Breweries: URGENT +[11:43:49] - Remitente: "Passera, Alessandro" +[11:43:49] - Fecha: 2025-08-07 13:07:11 +[11:43:49] - Adjuntos: 0 archivos +[11:43:49] - Contenido: 2398 caracteres +[11:43:49] - Hash generado: dc05b2959920f679cd60e8a29685badc +[11:43:49] ✉️ Mensaje extraído: +[11:43:49] - Subject: R: E5.006880 - RSC098 - Nigerian Breweries: URGENT +[11:43:49] - Remitente: "Passera, Alessandro" +[11:43:49] - Fecha: 2025-08-07 12:59:15 +[11:43:49] - Adjuntos: 0 archivos +[11:43:49] - Contenido: 1613 caracteres +[11:43:49] - Hash generado: a848be3351ae2cc44bafb0f322a78690 +[11:43:49] ✉️ Mensaje extraído: +[11:43:49] - Subject: RE: {EXT} R: E5.006880 - RSC098 - Nigerian Breweries: URGENT +[11:43:49] - Remitente: Miguel Angel Vera +[11:43:49] - Fecha: 2025-08-08 09:41:58 +[11:43:49] - Adjuntos: 0 archivos +[11:43:49] - Contenido: 4735 caracteres +[11:43:49] - Hash generado: 430cc918020c3c8db795995baa26cb78 +[11:43:49] 📧 Procesamiento completado: 6 mensajes extraídos +[11:43:49] Extracted 6 messages from R_ E5.006880 - RSC098 - Nigerian Breweries_ URGENT.eml +[11:43:49] --- Msg 1/6 from R_ E5.006880 - RSC098 - Nigerian Breweries_ URGENT.eml --- +[11:43:49] Remitente: Passera, Alessandro +[11:43:49] Fecha: 2025-08-08 07:49:28 +[11:43:49] Subject: R: {EXT} R: E5.006880 - RSC098 - Nigerian Breweries: URGENT +[11:43:49] Hash: 48f94bf24945f73bc08c1c0cf8c1e8bb +[11:43:49] Adjuntos: [] +[11:43:49] ✓ NUEVO mensaje - Agregando a la cronología +[11:43:49] --- Msg 2/6 from R_ E5.006880 - RSC098 - Nigerian Breweries_ URGENT.eml --- +[11:43:49] Remitente: Bii, Vickodyne +[11:43:49] Fecha: 2025-08-08 05:46:30 +[11:43:49] Subject: RE: {EXT} R: E5.006880 - RSC098 - Nigerian Breweries: URGENT +[11:43:49] Hash: 82709d4677b90d79bb02e13cfe86924e +[11:43:49] Adjuntos: [] +[11:43:49] ✓ NUEVO mensaje - Agregando a la cronología +[11:43:49] --- Msg 3/6 from R_ E5.006880 - RSC098 - Nigerian Breweries_ URGENT.eml --- +[11:43:49] Remitente: walter.orsi@teknors.com +[11:43:49] Fecha: 2025-08-07 15:55:58 +[11:43:49] Subject: R: E5.006880 - RSC098 - Nigerian Breweries: URGENT +[11:43:49] Hash: cceec9818de1a4491214af4b6d96e143 +[11:43:49] Adjuntos: [] +[11:43:49] ✓ NUEVO mensaje - Agregando a la cronología +[11:43:49] --- Msg 4/6 from R_ E5.006880 - RSC098 - Nigerian Breweries_ URGENT.eml --- +[11:43:49] Remitente: Passera, Alessandro +[11:43:49] Fecha: 2025-08-07 13:07:11 +[11:43:49] Subject: R: E5.006880 - RSC098 - Nigerian Breweries: URGENT +[11:43:49] Hash: dc05b2959920f679cd60e8a29685badc +[11:43:49] Adjuntos: [] +[11:43:49] ✓ NUEVO mensaje - Agregando a la cronología +[11:43:49] --- Msg 5/6 from R_ E5.006880 - RSC098 - Nigerian Breweries_ URGENT.eml --- +[11:43:49] Remitente: Passera, Alessandro +[11:43:49] Fecha: 2025-08-07 12:59:15 +[11:43:49] Subject: R: E5.006880 - RSC098 - Nigerian Breweries: URGENT +[11:43:49] Hash: a848be3351ae2cc44bafb0f322a78690 +[11:43:49] Adjuntos: [] +[11:43:49] ✓ NUEVO mensaje - Agregando a la cronología +[11:43:49] --- Msg 6/6 from R_ E5.006880 - RSC098 - Nigerian Breweries_ URGENT.eml --- +[11:43:49] Remitente: Miguel Angel Vera +[11:43:49] Fecha: 2025-08-08 09:41:58 +[11:43:49] Subject: RE: {EXT} R: E5.006880 - RSC098 - Nigerian Breweries: URGENT +[11:43:49] Hash: 430cc918020c3c8db795995baa26cb78 +[11:43:49] Adjuntos: [] +[11:43:49] ✓ NUEVO mensaje - Agregando a la cronología +[11:43:49] Estadísticas de procesamiento: +[11:43:49] - Total mensajes encontrados: 6 +[11:43:49] - Mensajes únicos añadidos: 6 +[11:43:49] - Mensajes duplicados ignorados: 0 +[11:43:49] Writing 6 messages to C:\Users\migue\OneDrive\Miguel\Obsidean\Trabajo\VM\04-SIDEL\17 - E5.006880 - Modifica O&U - RSC098\cronologia.md +[11:43:49] ✅ Cronología guardada exitosamente en: C:\Users\migue\OneDrive\Miguel\Obsidean\Trabajo\VM\04-SIDEL\17 - E5.006880 - Modifica O&U - RSC098\cronologia.md +[11:43:49] 📊 Total de mensajes en la cronología: 6 +[11:43:49] Ejecución de x1.py finalizada (success). Duración: 0:00:00.353973. +[11:43:49] Log completo guardado en: D:\Proyectos\Scripts\ParamManagerScripts\backend\script_groups\EmailCrono\.log\log_x1.txt