From eb9af89a56da8f6d4afe759c8b88eaef5d181b8e Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Tue, 16 Sep 2014 16:56:59 -0300 Subject: #53 apply mailbox tag only on recent mail --- service/pixelated/adapter/pixelated_mail.py | 9 +++++++++ service/pixelated/adapter/pixelated_mailbox.py | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) (limited to 'service/pixelated') diff --git a/service/pixelated/adapter/pixelated_mail.py b/service/pixelated/adapter/pixelated_mail.py index f6e02882..c732f5a0 100644 --- a/service/pixelated/adapter/pixelated_mail.py +++ b/service/pixelated/adapter/pixelated_mail.py @@ -44,6 +44,10 @@ class PixelatedMail: mail.tags = mail._extract_tags() return mail + @property + def is_recent(self): + return Status('recent') in self.status + @property def ident(self): return gen_pixelated_uid(self.leap_mailbox.mbox, self.leap_mail.getUID()) @@ -96,6 +100,11 @@ class PixelatedMail: self.status = self._extract_status() return self + def mark_as_not_recent(self): + self.leap_mail.setFlags((Status.PixelatedStatus.RECENT,), -1) + self.status = self._extract_status() + return self + def _persist_mail_tags(self, current_tags): hdoc = self.leap_mail.hdoc hdoc.content['headers']['X-Tags'] = json.dumps(list(current_tags)) diff --git a/service/pixelated/adapter/pixelated_mailbox.py b/service/pixelated/adapter/pixelated_mailbox.py index 34c6c97b..7d2a1fa5 100644 --- a/service/pixelated/adapter/pixelated_mailbox.py +++ b/service/pixelated/adapter/pixelated_mailbox.py @@ -35,9 +35,10 @@ class PixelatedMailbox: return self.leap_mailbox.mbox def add_mailbox_tag_if_not_there(self, pixelated_mail): - if not pixelated_mail.has_tag(self.mailbox_tag): + if not pixelated_mail.has_tag(self.mailbox_tag) and pixelated_mail.is_recent: pixelated_mail.update_tags({self.mailbox_tag}.union(pixelated_mail.tags)) self.tag_service.notify_tags_updated({self.mailbox_tag}, [], pixelated_mail.ident) + pixelated_mail.mark_as_not_recent() def mails(self): mails = self.leap_mailbox.messages or [] -- cgit v1.2.3