40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
# 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
|
|
|