Se invirtieron los directorios de entrada y salida en la configuración del script de cronología. Se renombró `output_directory` a `input_directory` en `esquema_work.json` y se actualizaron las descripciones correspondientes. En `script_config.json` y `work_dir.json`, se ajustaron las rutas para reflejar los nuevos directorios. Además, se mejoró la documentación y se corrigieron lints en `x1.py` sin alterar la lógica del script.

This commit is contained in:
Miguel 2025-08-08 12:05:17 +02:00
parent 1fda6e656d
commit 59cb4f4063
6 changed files with 152 additions and 24 deletions

View File

@ -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`).

View File

@ -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"
}
}
}

View File

@ -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"
}

View File

@ -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"
]
}

View File

@ -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:")

View File

@ -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" <Alessandro.Passera@sidel.com>
[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" <vickodyne.bii@sidel.com>
[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" <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" <Alessandro.Passera@sidel.com>
[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" <Alessandro.Passera@sidel.com>
[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 <miguelverateknors@gmail.com>
[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