summaryrefslogtreecommitdiff
path: root/py-fake-service/app/adapter/mail_service.py
diff options
context:
space:
mode:
Diffstat (limited to 'py-fake-service/app/adapter/mail_service.py')
-rw-r--r--py-fake-service/app/adapter/mail_service.py33
1 files changed, 26 insertions, 7 deletions
diff --git a/py-fake-service/app/adapter/mail_service.py b/py-fake-service/app/adapter/mail_service.py
index b657e59a..649ea96e 100644
--- a/py-fake-service/app/adapter/mail_service.py
+++ b/py-fake-service/app/adapter/mail_service.py
@@ -1,19 +1,38 @@
import os
import mailbox
+from tagsset import TagsSet
+from mailset import MailSet
+from contacts import Contacts
class MailService:
- MAILSET_PATH = os.join(os.environ('HOME'), 'mailset', 'mediumtagged'))
+ MAILSET_PATH = os.path.join(os.environ['HOME'], 'mailsets', 'mediumtagged')
def __init__(self):
- self.mails = MailSet()
+ self.mailset = MailSet()
+ self.tagsset = TagsSet()
+ self.contacts = Contacts()
def load_mailset(self):
- mbox_filenames = [filename for filename in os.listdir(MAILSET_PATH) if mbox.startswith('mbox')]
- boxes = (mailbox.mbox(os.path.join(MAILSET_PATH, mbox)) for mbox in mbox_filenames)
+ mbox_filenames = [filename for filename in os.listdir(self.MAILSET_PATH) if filename.startswith('mbox')]
+ boxes = (mailbox.mbox(os.path.join(self.MAILSET_PATH, mbox)) for mbox in mbox_filenames)
for box in boxes:
- message = box.popitem()
- self.mails.add(message[1])
+ message = box.popitem()[1]
+ if message.is_multipart():
+ continue
+ self.mailset.add(message)
+ self.tagsset.add(message)
+ self.contacts.add(message)
+
+ def mails(self, query, page, window_size):
+ mails = self.mailset.values()
+ mails = [mail for mail in mails if query.test(mail)]
+ return mails
+
+ def mail(self, mail_id):
+ return self.mailset.get(mail_id)
+
+ def search_contacts(self, query):
+ return self.contacts.search(query)
-