diff options
Diffstat (limited to 'py-fake-service/app/adapter')
-rw-r--r-- | py-fake-service/app/adapter/contacts.py | 2 | ||||
-rw-r--r-- | py-fake-service/app/adapter/mail.py | 4 | ||||
-rw-r--r-- | py-fake-service/app/adapter/mail_service.py | 8 | ||||
-rw-r--r-- | py-fake-service/app/adapter/tag.py | 4 | ||||
-rw-r--r-- | py-fake-service/app/adapter/tagsset.py | 7 |
5 files changed, 18 insertions, 7 deletions
diff --git a/py-fake-service/app/adapter/contacts.py b/py-fake-service/app/adapter/contacts.py index 19debdf1..f241de98 100644 --- a/py-fake-service/app/adapter/contacts.py +++ b/py-fake-service/app/adapter/contacts.py @@ -22,7 +22,7 @@ class Contacts: self.contacts = [] def add(self, mbox_mail): - contact = mbox_mail.from_addr + contact = mbox_mail.get('From') self.contacts.append(Contact(contact)) def search(self, query): diff --git a/py-fake-service/app/adapter/mail.py b/py-fake-service/app/adapter/mail.py index 39676fac..a18f6276 100644 --- a/py-fake-service/app/adapter/mail.py +++ b/py-fake-service/app/adapter/mail.py @@ -71,7 +71,7 @@ class Mail: def _get_headers(self, mbox_mail): headers = {} - headers['from'] = mbox_mail.from_addr + headers['from'] = mbox_mail.get('From') headers['to'] = [mbox_mail.get('To')] headers['subject'] = mbox_mail.get('Subject') headers['date'] = datetime.fromtimestamp( @@ -83,7 +83,7 @@ class Mail: return headers def _get_tags(self, mbox_mail): - return mbox_mail.get('X-TW-Pixelated-Tags').split(', ') + return filter(len, mbox_mail.get('X-TW-Pixelated-Tags').split(', ')) @property def subject(self): diff --git a/py-fake-service/app/adapter/mail_service.py b/py-fake-service/app/adapter/mail_service.py index 5c3a6d78..a422ad9a 100644 --- a/py-fake-service/app/adapter/mail_service.py +++ b/py-fake-service/app/adapter/mail_service.py @@ -49,14 +49,20 @@ class MailService: msg.from_addr = msg.get('From') return msg + def _create_message_from_string(self, data): + return mailbox.Message(data) + def load_mailset(self): mbox_filenames = [ filename for filename in os.listdir (self.MAILSET_PATH) if filename.startswith('mbox')] messages = (self._create_message_from_file(os.path.join(self.MAILSET_PATH, mbox)) - for mbox in mbox_filenames) + for mbox in mbox_filenames) + + self.index_messages(messages) + def index_messages(self, messages): for message in messages: self.mailset.add(message) self.tagsset.add(message) diff --git a/py-fake-service/app/adapter/tag.py b/py-fake-service/app/adapter/tag.py index e1a08eb2..b866d789 100644 --- a/py-fake-service/app/adapter/tag.py +++ b/py-fake-service/app/adapter/tag.py @@ -13,12 +13,14 @@ # # You should have received a copy of the GNU Affero General Public License # along with Pixelated. If not, see <http://www.gnu.org/licenses/>. + + class Tag: DEFAULT_TAGS = ["inbox", "sent", "trash", "drafts"] def __init__(self, name, ident): self.counts = { - 'total': 1, + 'total': 0, 'read': 0, 'starred': 0, 'reply': 0 diff --git a/py-fake-service/app/adapter/tagsset.py b/py-fake-service/app/adapter/tagsset.py index b56fc4f8..8e0d7ca3 100644 --- a/py-fake-service/app/adapter/tagsset.py +++ b/py-fake-service/app/adapter/tagsset.py @@ -18,12 +18,15 @@ from tag import Tag class TagsSet: + DEFAULT_TAGS = ["inbox", "sent", "trash", "drafts"] + def __init__(self): - self.tags = {} self.ident = 0 + self.tags = {} + self.tags = {tag: self._create_new_tag(tag) for tag in self.DEFAULT_TAGS} def add(self, mbox_mail): - tags = mbox_mail.get('X-TW-Pixelated-Tags').split(', ') + tags = filter(len, mbox_mail.get('X-TW-Pixelated-Tags').split(', ')) for tag in tags: tag = self._create_new_tag(tag) tag.increment_count() |