summaryrefslogtreecommitdiff
path: root/mail/src/leap/mail/adaptors/soledad.py
diff options
context:
space:
mode:
authorKali Kaneko <kali@leap.se>2016-08-02 04:00:48 +0200
committerKali Kaneko <kali@leap.se>2016-08-25 11:12:25 -0400
commit18194c2a64a38a07652eb24a6e89ec40d32e7e57 (patch)
tree71065b3f43ac6d9c14c5436a736a1c96c5f23972 /mail/src/leap/mail/adaptors/soledad.py
parentee31239729811c0a386ab34e85309d64859e1ee5 (diff)
[refactor] [bug] simplify and bugfix walk module
some tests added too - Related: #7999
Diffstat (limited to 'mail/src/leap/mail/adaptors/soledad.py')
-rw-r--r--mail/src/leap/mail/adaptors/soledad.py19
1 files changed, 9 insertions, 10 deletions
diff --git a/mail/src/leap/mail/adaptors/soledad.py b/mail/src/leap/mail/adaptors/soledad.py
index 298d0172..46c5a2c5 100644
--- a/mail/src/leap/mail/adaptors/soledad.py
+++ b/mail/src/leap/mail/adaptors/soledad.py
@@ -1185,14 +1185,13 @@ def _split_into_parts(raw):
# TODO populate Default FLAGS/TAGS (unseen?)
# TODO seed propely the content_docs with defaults??
- msg, parts, chash, multi = _parse_msg(raw)
+ msg, chash, multi = _parse_msg(raw)
size = len(msg.as_string())
- body_phash = walk.get_body_phash(msg)
-
- parts_map = walk.walk_msg_tree(parts, body_phash=body_phash)
- cdocs_list = list(walk.get_raw_docs(msg, parts))
+ parts_map = walk.get_tree(msg)
+ cdocs_list = list(walk.get_raw_docs(msg))
cdocs_phashes = [c['phash'] for c in cdocs_list]
+ body_phash = walk.get_body_phash(msg)
mdoc = _build_meta_doc(chash, cdocs_phashes)
fdoc = _build_flags_doc(chash, size, multi)
@@ -1206,10 +1205,9 @@ def _split_into_parts(raw):
def _parse_msg(raw):
msg = message_from_string(raw)
- parts = walk.get_parts(msg)
chash = walk.get_hash(raw)
multi = msg.is_multipart()
- return msg, parts, chash, multi
+ return msg, chash, multi
def _build_meta_doc(chash, cdocs_phashes):
@@ -1220,6 +1218,7 @@ def _build_meta_doc(chash, cdocs_phashes):
_mdoc.fdoc = constants.FDOCID.format(mbox_uuid=INBOX_NAME, chash=chash)
_mdoc.hdoc = constants.HDOCID.format(chash=chash)
_mdoc.cdocs = [constants.CDOCID.format(phash=p) for p in cdocs_phashes]
+
return _mdoc.serialize()
@@ -1259,8 +1258,8 @@ def _build_headers_doc(msg, chash, body_phash, parts_map):
copy_attr(lower_headers, "date", _hdoc)
hdoc = _hdoc.serialize()
- # add parts map to header doc
- # (body, multi, part_map)
+ # add some of the attr from the parts map to header doc
for key in parts_map:
- hdoc[key] = parts_map[key]
+ if key in ('body', 'multi', 'part_map'):
+ hdoc[key] = parts_map[key]
return stringify_parts_map(hdoc)