From a68c0cb3dc58a9040a3ad61033742f5a04cc3648 Mon Sep 17 00:00:00 2001 From: Bruno Wagner Goncalves Date: Mon, 22 Sep 2014 21:28:59 -0300 Subject: Added a querier to avoid duplicating the queries (must find a proper place yet) and tweaked pixelated mail to better use the docs --- service/pixelated/adapter/pixelated_mailbox.py | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'service/pixelated/adapter/pixelated_mailbox.py') diff --git a/service/pixelated/adapter/pixelated_mailbox.py b/service/pixelated/adapter/pixelated_mailbox.py index 167092d8..dec7cdca 100644 --- a/service/pixelated/adapter/pixelated_mailbox.py +++ b/service/pixelated/adapter/pixelated_mailbox.py @@ -18,6 +18,7 @@ from pixelated.support.id_gen import gen_pixelated_uid from pixelated.adapter.pixelated_mail import PixelatedMail from pixelated.adapter.status import Status from pixelated.adapter.tag_service import TagService +from pixelated.adapter.soledad_querier import SoledadQuerier from crochet import wait_for @@ -27,6 +28,7 @@ class PixelatedMailbox: self.tag_service = tag_service self.leap_mailbox = leap_mailbox self.mailbox_tag = self.leap_mailbox.mbox.lower() + self.querier = SoledadQuerier(self.leap_mailbox._soledad) @property def messages(self): @@ -43,17 +45,10 @@ class PixelatedMailbox: pixelated_mail.mark_as_not_recent() def mails(self): - soledad = self.leap_mailbox._soledad - - fdocs_chash = [(fdoc, fdoc.content['chash']) for fdoc in soledad.get_from_index('by-type-and-mbox', 'flags', self.leap_mailbox.mbox)] - fdocs_hdocs = [(f[0], soledad.get_from_index('by-type-and-contenthash', 'head', f[1])[0]) for f in fdocs_chash] - fdocs_hdocs_phash = [(f[0], f[1], f[1].content.get('body')) for f in fdocs_hdocs] - fdocs_hdocs_bdocs = [(f[0], f[1], soledad.get_from_index('by-type-and-payloadhash', 'cnt', f[2])[0]) for f in fdocs_hdocs_phash] - - mails = [PixelatedMail.from_soledad(*raw_mail) for raw_mail in fdocs_hdocs_bdocs] + _mails = self.querier.all_mails_by_mailbox(self.leap_mailbox.mbox) result = [] - for mail in mails: + for mail in _mails: self.add_mailbox_tag_if_not_there(mail) result.append(mail) return result -- cgit v1.2.3