diff options
author | Pierre-Yves Chibon <pingou@pingoured.fr> | 2012-03-28 20:45:56 +0200 |
---|---|---|
committer | Pierre-Yves Chibon <pingou@pingoured.fr> | 2012-03-28 20:45:56 +0200 |
commit | 26a3772b571398537affa10e7bb9cfbfdfb18c1c (patch) | |
tree | da8548751ea11f695ba6264b85c67ab1157bca5e | |
parent | 4734d13231b98c9b126e02533c3d3a0adfc5e46a (diff) | |
download | hyperkitty-26a3772b571398537affa10e7bb9cfbfdfb18c1c.tar.gz hyperkitty-26a3772b571398537affa10e7bb9cfbfdfb18c1c.tar.xz hyperkitty-26a3772b571398537affa10e7bb9cfbfdfb18c1c.zip |
Add a get_email function return the email corresponding to the given Message-ID -- code layout
-rw-r--r-- | lib/mongo.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/mongo.py b/lib/mongo.py index 0c4c71e..275f740 100644 --- a/lib/mongo.py +++ b/lib/mongo.py @@ -7,6 +7,7 @@ from datetime import datetime connection = pymongo.Connection('localhost', 27017) + def _build_thread(emails): thread = {} for email in emails: @@ -30,6 +31,7 @@ def _build_thread(emails): {'email': None, 'child': [email['Message-ID']]}) return thread + def _tree_to_list(tree, mailid, level, thread_list): start = tree[mailid] start.level = level @@ -40,6 +42,7 @@ def _tree_to_list(tree, mailid, level, thread_list): level + 1, thread_list) return thread_list + def get_thread_list(table, threadid): db = connection[table] thread = list(db.mails.find({'ThreadID': int(threadid)}, @@ -53,6 +56,7 @@ def get_thread_list(table, threadid): else: return [] + def get_thread_name(table, threadid): db = connection[table] thread = list(db.mails.find({'ThreadID': int(threadid)}, @@ -62,6 +66,14 @@ def get_thread_name(table, threadid): else: return '' + +def get_email(table, emailid): + db = connection[table] + db.mails.create_index('Message-ID') + db.mails.ensure_index('Message-ID') + return db.mails.find_one({'Message-ID': emailid}) + + def get_emails_thread(table, start_email, thread): db = connection[table] db.mails.create_index('Date') @@ -154,4 +166,4 @@ def search_archives(table, query): db.mails.ensure_index(str(el)) return list(db.mails.find(query, sort=[('Date', pymongo.DESCENDING)])) - + |