summaryrefslogtreecommitdiff
path: root/service/pixelated/config/services.py
diff options
context:
space:
mode:
Diffstat (limited to 'service/pixelated/config/services.py')
-rw-r--r--service/pixelated/config/services.py23
1 files changed, 13 insertions, 10 deletions
diff --git a/service/pixelated/config/services.py b/service/pixelated/config/services.py
index 092d3e9a..0a689a4b 100644
--- a/service/pixelated/config/services.py
+++ b/service/pixelated/config/services.py
@@ -7,6 +7,7 @@ from pixelated.adapter.search import SearchEngine
from pixelated.adapter.services.draft_service import DraftService
from pixelated.adapter.listeners.mailbox_indexer_listener import listen_all_mailboxes
from twisted.internet import defer
+from pixelated.adapter.search.index_storage_key import SearchIndexStorageKey
class Services(object):
@@ -20,9 +21,10 @@ class Services(object):
soledad_querier = SoledadQuerier(soledad=leap_session.soledad_session.soledad)
+ search_index_storage_key = self.setup_search_index_storage_key(leap_session.soledad_session.soledad)
yield self.setup_search_engine(
leap_home,
- soledad_querier)
+ search_index_storage_key)
self.wrap_mail_store_with_indexing_mail_store(leap_session)
@@ -36,21 +38,20 @@ class Services(object):
self.keymanager = leap_session.nicknym
self.draft_service = self.setup_draft_service(leap_session.mail_store)
- yield self.post_setup(soledad_querier, leap_session)
+ yield self.index_all_mails()
def wrap_mail_store_with_indexing_mail_store(self, leap_session):
leap_session.mail_store = SearchableMailStore(leap_session.mail_store, self.search_engine)
@defer.inlineCallbacks
- def post_setup(self, soledad_querier, leap_session):
- self.search_engine.index_mails(
- mails=(yield self.mail_service.all_mails()))
- # yield soledad_querier.mark_all_as_not_recent()
- # yield soledad_querier.remove_duplicates()
+ def index_all_mails(self):
+ all_mails = yield self.mail_service.all_mails()
+ self.search_engine.index_mails(all_mails)
@defer.inlineCallbacks
- def setup_search_engine(self, leap_home, soledad_querier):
- key = yield soledad_querier.get_index_masterkey()
+ def setup_search_engine(self, leap_home, search_index_storage_key):
+ key_unicode = yield search_index_storage_key.get_or_create_key()
+ key = str(key_unicode)
print 'The key len is: %s' % len(key)
search_engine = SearchEngine(key, agent_home=leap_home)
self.search_engine = search_engine
@@ -64,8 +65,10 @@ class Services(object):
return MailService(
pixelated_mail_sender,
leap_session.mail_store,
- soledad_querier,
search_engine)
def setup_draft_service(self, mail_store):
return DraftService(mail_store)
+
+ def setup_search_index_storage_key(self, soledad):
+ return SearchIndexStorageKey(soledad)