diff options
Diffstat (limited to 'service/pixelated/config/services.py')
-rw-r--r-- | service/pixelated/config/services.py | 23 |
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) |