Inline query handler refactored
This commit is contained in:
parent
d692744b5b
commit
8919fc08a3
@ -390,28 +390,25 @@ class Bot(TelegramBot, ObjectWithDatabase):
|
|||||||
Answer it with results or log errors.
|
Answer it with results or log errors.
|
||||||
"""
|
"""
|
||||||
query = update['query']
|
query = update['query']
|
||||||
answer, switch_pm_text, switch_pm_parameter = None, None, None
|
results, switch_pm_text, switch_pm_parameter = None, None, None
|
||||||
for condition, handler in self.inline_query_handlers.items():
|
for condition, handler in self.inline_query_handlers.items():
|
||||||
if condition(query):
|
if condition(query):
|
||||||
_function = handler['function']
|
_handler = handler['handler']
|
||||||
if asyncio.iscoroutinefunction(_function):
|
results = await _handler(bot=self, update=update,
|
||||||
answer = await _function(update)
|
user_record=user_record)
|
||||||
else:
|
|
||||||
answer = _function(update)
|
|
||||||
break
|
break
|
||||||
if not answer:
|
if not results:
|
||||||
answer = self.default_inline_query_answer
|
results = self.default_inline_query_answer
|
||||||
if type(answer) is dict:
|
if type(results) is dict:
|
||||||
if 'switch_pm_text' in answer:
|
if 'switch_pm_text' in results:
|
||||||
switch_pm_text = answer['switch_pm_text']
|
switch_pm_text = results['switch_pm_text']
|
||||||
if 'switch_pm_parameter' in answer:
|
if 'switch_pm_parameter' in results:
|
||||||
switch_pm_parameter = answer['switch_pm_parameter']
|
switch_pm_parameter = results['switch_pm_parameter']
|
||||||
answer = answer['answer']
|
results = results['answer']
|
||||||
answer = make_inline_query_answer(answer)
|
|
||||||
try:
|
try:
|
||||||
await self.answerInlineQuery(
|
await self.answerInlineQuery(
|
||||||
update['id'],
|
update['id'],
|
||||||
answer,
|
results=results,
|
||||||
cache_time=10,
|
cache_time=10,
|
||||||
is_personal=True,
|
is_personal=True,
|
||||||
switch_pm_text=switch_pm_text,
|
switch_pm_text=switch_pm_text,
|
||||||
@ -1055,7 +1052,8 @@ class Bot(TelegramBot, ObjectWithDatabase):
|
|||||||
is_personal=None,
|
is_personal=None,
|
||||||
next_offset=None,
|
next_offset=None,
|
||||||
switch_pm_text=None,
|
switch_pm_text=None,
|
||||||
switch_pm_parameter=None):
|
switch_pm_parameter=None,
|
||||||
|
update=None):
|
||||||
"""Answer inline queries.
|
"""Answer inline queries.
|
||||||
|
|
||||||
This method wraps lower-level `answerInlineQuery` method.
|
This method wraps lower-level `answerInlineQuery` method.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user