diff options
author | Duda Dornelles <ddornell@thoughtworks.com> | 2014-09-11 10:26:18 -0300 |
---|---|---|
committer | Duda Dornelles <ddornell@thoughtworks.com> | 2014-09-11 10:36:19 -0300 |
commit | 6b62849aa40023fd9eba666560984e0edfedc55d (patch) | |
tree | 32521cffb815aceeca47a4812cc833e3eff323e1 /service/pixelated | |
parent | cf9b7a1292e9d2ec8c5326f91803f489a8251d14 (diff) |
generating unique ident for PixelatedMail
Diffstat (limited to 'service/pixelated')
-rw-r--r-- | service/pixelated/adapter/pixelated_mail.py | 3 | ||||
-rw-r--r-- | service/pixelated/adapter/pixelated_mailbox.py | 3 | ||||
-rw-r--r-- | service/pixelated/support/id_gen.py | 20 |
3 files changed, 24 insertions, 2 deletions
diff --git a/service/pixelated/adapter/pixelated_mail.py b/service/pixelated/adapter/pixelated_mail.py index e8aab1eb..d39cf81e 100644 --- a/service/pixelated/adapter/pixelated_mail.py +++ b/service/pixelated/adapter/pixelated_mail.py @@ -14,6 +14,7 @@ # You should have received a copy of the GNU Affero General Public License # along with Pixelated. If not, see <http://www.gnu.org/licenses/>. from pixelated.adapter.status import Status +from pixelated.support.id_gen import gen_pixelated_uid import pixelated.support.date import dateutil.parser as dateparser from email.MIMEMultipart import MIMEMultipart @@ -32,7 +33,7 @@ class PixelatedMail: mail.body = leap_mail.bdoc.content['raw'] mail.headers = mail._extract_headers() mail.date = PixelatedMail._get_date(mail.headers) - mail.ident = leap_mail.getUID() + mail.ident = gen_pixelated_uid(leap_mail._mbox, leap_mail.getUID()) mail.status = set(mail._extract_status()) mail.security_casing = {} mail.tags = mail._extract_tags() diff --git a/service/pixelated/adapter/pixelated_mailbox.py b/service/pixelated/adapter/pixelated_mailbox.py index 1a17926a..6323d3c3 100644 --- a/service/pixelated/adapter/pixelated_mailbox.py +++ b/service/pixelated/adapter/pixelated_mailbox.py @@ -19,6 +19,7 @@ import os from pixelated.adapter.pixelated_mail import PixelatedMail from pixelated.adapter.tag import Tag from pixelated.adapter.tag_index import TagIndex +from pixelated.support.id_gen import gen_pixelated_uid class PixelatedMailbox: @@ -59,7 +60,7 @@ class PixelatedMailbox: def mail(self, mail_id): for message in self.leap_mailbox.messages: - if message.getUID() == int(mail_id): + if gen_pixelated_uid(self.leap_mailbox.mbox, message.getUID()) == mail_id: return PixelatedMail.from_leap_mail(message) def all_tags(self): diff --git a/service/pixelated/support/id_gen.py b/service/pixelated/support/id_gen.py new file mode 100644 index 00000000..6cac7523 --- /dev/null +++ b/service/pixelated/support/id_gen.py @@ -0,0 +1,20 @@ +# +# Copyright (c) 2014 ThoughtWorks, Inc. +# +# Pixelated is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Pixelated is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with Pixelated. If not, see <http://www.gnu.org/licenses/>. +import hashlib + + +def gen_pixelated_uid(mbox, leap_message_uid): + return hashlib.md5(mbox + str(leap_message_uid)).hexdigest() |