summaryrefslogtreecommitdiff
path: root/alot/db.py
diff options
context:
space:
mode:
authorpazz <patricktotzke@gmail.com>2011-06-01 13:16:01 +0100
committerpazz <patricktotzke@gmail.com>2011-06-01 13:16:01 +0100
commit21274060a591fc4bf94b42a46359622219f787c5 (patch)
treea08cd88efd6fba08a1657d1699a1cd6c29657145 /alot/db.py
parent07189755c0eb353ab37fae6a2662754e8cded889 (diff)
singlethread buffer shows all its msgs
Diffstat (limited to 'alot/db.py')
-rw-r--r--alot/db.py25
1 files changed, 16 insertions, 9 deletions
diff --git a/alot/db.py b/alot/db.py
index 3310d0e7..a063d9a1 100644
--- a/alot/db.py
+++ b/alot/db.py
@@ -147,8 +147,22 @@ class Thread:
def get_subject(self):
return self.subject
- def get_toplevel_messages(self):
- return [self.dbman.get_message(mid) for mid in self.topmessages]
+ def _build_messages(self, acc, msg):
+ M = Message(self.dbman,msg)
+ acc[M] = {}
+ r = msg.get_replies()
+ if r is not None:
+ for m in r:
+ self._build_messages(acc[M], m)
+
+ def get_messages(self):
+ query = self.dbman.query('thread:' + self.tid)
+ thread = query.search_threads().next()
+
+ messages = {}
+ for m in thread.get_toplevel_messages():
+ self._build_messages(messages, m)
+ return messages
def get_newest_date(self):
return self.newest
@@ -165,14 +179,7 @@ class Message:
self.dbman = dbman
self.mid = msg.get_message_id()
self.strrep = str(msg)
-
self.email = None # will be read upon first use
- r = msg.get_replies() # not iterable if None
- if r:
- self.replies = [m.get_message_id() for m in msg.get_replies()]
- else:
- self.replies = []
-
self.filename = msg.get_filename()
self.tags = set([str(tag) for tag in msg.get_tags()])