summaryrefslogtreecommitdiff
path: root/alot/db
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2021-01-15 13:43:11 +0100
committerAnton Khirnov <anton@khirnov.net>2021-01-15 13:43:11 +0100
commit80c46b8921bf4710cd1f66bf9807e0fe007c1c63 (patch)
treeb3a5c192a287936752648f0239bd9df00a195150 /alot/db
parentadbd0cb32d33a380c9ee92604b2d48cbc6f61c54 (diff)
db/message: export headers per-MIME part
Diffstat (limited to 'alot/db')
-rw-r--r--alot/db/message.py44
1 files changed, 23 insertions, 21 deletions
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)