Files
luk/maildir_gtd/actions/show_message.py
2025-04-30 16:47:16 -04:00

24 lines
965 B
Python

from textual.widgets import Static
from rich.markdown import Markdown
import subprocess
def show_message(app, message_id: int) -> None:
"""Fetch and display the email message by ID."""
app.current_message_id = message_id
app.query_one("#main_content", Static).loading = True
try:
result = subprocess.run(
["himalaya", "message", "read", str(message_id)],
capture_output=True,
text=True
)
if result.returncode == 0:
# Render the email content as Markdown
markdown_content = Markdown(result.stdout, justify=True)
app.query_one("#main_content", Static).loading = False
app.query_one("#main_content", Static).update(markdown_content)
else:
app.query_one("#main_content", Static).update(f"Failed to fetch message {message_id}.")
except Exception as e:
app.query_one("#main_content", Static).update(f"Error: {e}")