summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2021-05-13 12:22:29 +0200
committerAnton Khirnov <anton@khirnov.net>2021-05-13 12:22:29 +0200
commitfe6a3233800630c9ac6e6668f6eb048e8ab1d321 (patch)
tree2c49f19b90cb235d1ceefc195e99babaa9cac78c
parentef6f051d36e32720f583699bc40e073f706db0ed (diff)
db/message: stop loading the email in the constructor
The last bit of code in the constructor accessing the email was the chunk parsing the author. Move it to the author accessor, and also make it use the 'From' header value loaded from the Notmuch message (which is stored in the database).
-rw-r--r--alot/db/message.py31
1 files changed, 17 insertions, 14 deletions
diff --git a/alot/db/message.py b/alot/db/message.py
index f2a298d7..74139315 100644
--- a/alot/db/message.py
+++ b/alot/db/message.py
@@ -386,6 +386,9 @@ class Message:
_session_keys = None
+ _nm_from = None
+ "From header stored in the database"
+
def __init__(self, dbman, thread, msg, depth):
"""
:param dbman: db manager that is used for further lookups
@@ -416,19 +419,8 @@ class Message:
session_keys.append(value)
self._session_keys = session_keys
- self._tags = set(msg.tags)
-
- sender = self._email.get('From')
- if sender is None:
- sender = self._email.get('Sender')
-
- if sender:
- self._from = sender
- elif 'draft' in self._tags:
- acc = settings.get_accounts()[0]
- self._from = '"{}" <{}>'.format(acc.realname, str(acc.address))
- else:
- self._from = '"Unknown" <>'
+ self._tags = set(msg.tags)
+ self._nm_from = msg.header('from')
def __str__(self):
"""prettyprint the message"""
@@ -502,7 +494,18 @@ class Message:
:rtype: (str,str)
"""
- return email.utils.parseaddr(self._from)
+ sender = self._nm_from
+ if sender is None:
+ sender = self.headers.get('Sender')
+
+ if not sender:
+ if 'draft' in self._tags:
+ acc = settings.get_accounts()[0]
+ sender = '"{}" <{}>'.format(acc.realname, str(acc.address))
+ else:
+ sender = '"Unknown" <>'
+
+ return email.utils.parseaddr(sender)
def tags_add(self, tags):
"""