generate markovify instance just once

This commit is contained in:
bakatrouble 2019-11-27 23:31:09 +03:00
parent c56deae824
commit d62f4986d2

View File

@ -37,9 +37,15 @@ class CyberLinaBotModuleConfig(TelegramBotModuleConfig):
'already_ran': JSONEditor(), 'already_ran': JSONEditor(),
'welcome_reactions': JSONEditor(), 'welcome_reactions': JSONEditor(),
'inline_reactions': JSONEditor(), 'inline_reactions': JSONEditor(),
'_mtg_data': JSONEditor(),
} }
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
try:
self.markovify = markovify.Text.from_dict(self._mtg_data)
except:
pass
def message_handler(self, update: Update, ctx: CallbackContext): def message_handler(self, update: Update, ctx: CallbackContext):
if not update.effective_chat or not update.effective_user: if not update.effective_chat or not update.effective_user:
return return
@ -87,7 +93,6 @@ class CyberLinaBotModuleConfig(TelegramBotModuleConfig):
def inline_query_handler(self, update: Update, ctx: CallbackContext): def inline_query_handler(self, update: Update, ctx: CallbackContext):
if not self.inline_reactions: if not self.inline_reactions:
return return
mtg = markovify.Text.from_dict(self._mtg_data)
seed(os.urandom(128)) seed(os.urandom(128))
results = [ results = [
InlineQueryResultArticle( InlineQueryResultArticle(
@ -98,7 +103,7 @@ class CyberLinaBotModuleConfig(TelegramBotModuleConfig):
InlineQueryResultArticle( InlineQueryResultArticle(
id=uuid4(), id=uuid4(),
title='ФлаБеПроЛейка', title='ФлаБеПроЛейка',
input_message_content=InputTextMessageContent(mtg.make_sentence(tries=100)) input_message_content=InputTextMessageContent(self.markovify.make_sentence(tries=100))
), ),
] ]
update.inline_query.answer(results, cache_time=0) update.inline_query.answer(results, cache_time=0)