From 80c46b8921bf4710cd1f66bf9807e0fe007c1c63 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Fri, 15 Jan 2021 13:43:11 +0100 Subject: db/message: export headers per-MIME part --- alot/db/message.py | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) (limited to 'alot/db') diff --git a/alot/db/message.py b/alot/db/message.py index 41654c4a..21373e5e 100644 --- a/alot/db/message.py +++ b/alot/db/message.py @@ -83,6 +83,26 @@ def _render_part(part, field_key='copiousoutput'): return rendered_payload +class _MessageHeaders: + _msg = None + + def __init__(self, msg): + self._msg = msg + + def __contains__(self, key): + return key in self._msg + + def __getitem__(self, key): + if not key in self._msg: + raise KeyError(key) + return self._msg.get_all(key) + + def keys(self): + return self._msg.keys() + + def items(self): + return self._msg.items() + class _MimeTree: _part = None @@ -95,11 +115,13 @@ class _MimeTree: is_alternative = False + headers = None children = None attachment = None def __init__(self, part, session_keys = None): self._part = part + self.headers = _MessageHeaders(self._part) if part.is_multipart(): st = part.get_content_subtype() @@ -291,26 +313,6 @@ class _MimeTree: if len(sigs) == 1: self.signer_id, self.sig_trusted = self._sig_check_key(sigs[0].fpr) -class _MessageHeaders: - _msg = None - - def __init__(self, msg): - self._msg = msg - - def __contains__(self, key): - return key in self._msg - - def __getitem__(self, key): - if not key in self._msg: - raise KeyError(key) - return self._msg.get_all(key) - - def keys(self): - return self._msg.keys() - - def items(self): - return self._msg.items() - class Message: """ a persistent notmuch message object. @@ -383,8 +385,8 @@ class Message: self._email = self._load_email(session_keys) - self.headers = _MessageHeaders(self._email) self.body = _MimeTree(self._email, session_keys) + self.headers = self.body.headers self._tags = set(msg.tags) -- cgit v1.2.3