summaryrefslogtreecommitdiff
path: root/service/pixelated
diff options
context:
space:
mode:
authorDuda Dornelles <ddornell@thoughtworks.com>2014-09-11 10:26:18 -0300
committerDuda Dornelles <ddornell@thoughtworks.com>2014-09-11 10:36:19 -0300
commit6b62849aa40023fd9eba666560984e0edfedc55d (patch)
tree32521cffb815aceeca47a4812cc833e3eff323e1 /service/pixelated
parentcf9b7a1292e9d2ec8c5326f91803f489a8251d14 (diff)
generating unique ident for PixelatedMail
Diffstat (limited to 'service/pixelated')
-rw-r--r--service/pixelated/adapter/pixelated_mail.py3
-rw-r--r--service/pixelated/adapter/pixelated_mailbox.py3
-rw-r--r--service/pixelated/support/id_gen.py20
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()