diff options
Diffstat (limited to 'mail/src')
-rw-r--r-- | mail/src/leap/mail/imap/memorystore.py | 60 | ||||
-rw-r--r-- | mail/src/leap/mail/imap/messageparts.py | 2 |
2 files changed, 26 insertions, 36 deletions
diff --git a/mail/src/leap/mail/imap/memorystore.py b/mail/src/leap/mail/imap/memorystore.py index f0c0d4b..dcae6b0 100644 --- a/mail/src/leap/mail/imap/memorystore.py +++ b/mail/src/leap/mail/imap/memorystore.py @@ -224,32 +224,28 @@ class MemoryStore(object): def _add_message(self, mbox, uid, message, notify_on_disk=True): # XXX have to differentiate between notify_new and notify_dirty - key = mbox, uid msg_dict = message.as_dict() - print "ADDING MESSAGE..." - import pprint; pprint.pprint(msg_dict) - # XXX use the enum as keys + FDOC = MessagePartType.fdoc.key + HDOC = MessagePartType.hdoc.key + CDOCS = MessagePartType.cdocs.key + DOCS_ID = MessagePartType.docs_id.key try: store = self._msg_store[key] except KeyError: - self._msg_store[key] = {'fdoc': {}, - 'hdoc': {}, - 'cdocs': {}, - 'docs_id': {}} + self._msg_store[key] = {FDOC: {}, + HDOC: {}, + CDOCS: {}, + DOCS_ID: {}} store = self._msg_store[key] - print "In store (before):" - import pprint; pprint.pprint(store) - - #self._msg_store[key] = msg_dict - fdoc = msg_dict.get('fdoc', None) + fdoc = msg_dict.get(FDOC, None) if fdoc: - if not store.get('fdoc', None): - store['fdoc'] = ReferenciableDict({}) - store['fdoc'].update(fdoc) + if not store.get(FDOC, None): + store[FDOC] = ReferenciableDict({}) + store[FDOC].update(fdoc) # content-hash indexing chash = fdoc.get(fields.CONTENT_HASH_KEY) @@ -258,29 +254,29 @@ class MemoryStore(object): chash_fdoc_store[chash] = {} chash_fdoc_store[chash][mbox] = weakref.proxy( - store['fdoc']) + store[FDOC]) - hdoc = msg_dict.get('hdoc', None) + hdoc = msg_dict.get(HDOC, None) if hdoc: - if not store.get('hdoc', None): - store['hdoc'] = ReferenciableDict({}) - store['hdoc'].update(hdoc) + if not store.get(HDOC, None): + store[HDOC] = ReferenciableDict({}) + store[HDOC].update(hdoc) - docs_id = msg_dict.get('docs_id', None) + docs_id = msg_dict.get(DOCS_ID, None) if docs_id: - if not store.get('docs_id', None): - store['docs_id'] = {} - store['docs_id'].update(docs_id) + if not store.get(DOCS_ID, None): + store[DOCS_ID] = {} + store[DOCS_ID].update(docs_id) cdocs = message.cdocs for cdoc_key in cdocs.keys(): - if not store.get('cdocs', None): - store['cdocs'] = {} + if not store.get(CDOCS, None): + store[CDOCS] = {} cdoc = cdocs[cdoc_key] # first we make it weak-referenciable referenciable_cdoc = ReferenciableDict(cdoc) - store['cdocs'][cdoc_key] = referenciable_cdoc + store[CDOCS][cdoc_key] = referenciable_cdoc phash = cdoc.get(fields.PAYLOAD_HASH_KEY, None) if not phash: continue @@ -290,13 +286,7 @@ class MemoryStore(object): for key in seq: if key in store and empty(store.get(key)): store.pop(key) - - prune(('fdoc', 'hdoc', 'cdocs', 'docs_id'), store) - #import ipdb; ipdb.set_trace() - - - print "after appending to store: ", key - import pprint; pprint.pprint(self._msg_store[key]) + prune((FDOC, HDOC, CDOCS, DOCS_ID), store) def get_message(self, mbox, uid): """ diff --git a/mail/src/leap/mail/imap/messageparts.py b/mail/src/leap/mail/imap/messageparts.py index b43bc37..055e6a5 100644 --- a/mail/src/leap/mail/imap/messageparts.py +++ b/mail/src/leap/mail/imap/messageparts.py @@ -34,7 +34,7 @@ from leap.mail.imap import interfaces from leap.mail.imap.fields import fields from leap.mail.utils import first -MessagePartType = Enum("hdoc", "fdoc", "cdoc") +MessagePartType = Enum("hdoc", "fdoc", "cdoc", "cdocs", "docs_id") logger = logging.getLogger(__name__) |