EmailCrono/utils/markdown_handler.py

40 lines
1.2 KiB
Python
Raw Normal View History

2025-02-05 08:14:36 -03:00
# utils/markdown_handler.py
import os
import re
from datetime import datetime
from models.mensaje_email import MensajeEmail
def cargar_cronologia_existente(archivo):
mensajes = []
if not os.path.exists(archivo):
return mensajes
with open(archivo, 'r', encoding='utf-8') as f:
contenido = f.read()
bloques = contenido.split('---\n\n')
for bloque in bloques:
if not bloque.strip():
continue
match = re.match(r'## (\d{14})\|(.*?)\n\n(.*)', bloque.strip(), re.DOTALL)
if match:
fecha_str, remitente, contenido = match.groups()
fecha = datetime.strptime(fecha_str, '%Y%m%d%H%M%S')
adjuntos = []
if '### Adjuntos' in contenido:
contenido_principal, lista_adjuntos = contenido.split('### Adjuntos')
adjuntos = [adj.strip()[2:-2] for adj in lista_adjuntos.strip().split('\n')]
contenido = contenido_principal.strip()
mensajes.append(MensajeEmail(
remitente=remitente,
fecha=fecha,
contenido=contenido,
adjuntos=adjuntos
))
return mensajes