def test_inline_answer(): bot = MockBot() src = inline_query("Answer!") iq = InlineQuery(bot, src) results = [{ "type": "article", "id": "000", "title": "test", "message_text": "Foo bar" }] iq.answer(results) assert "answerInlineQuery" in bot.calls assert isinstance(bot.calls["answerInlineQuery"]["results"], str)
def inline_request_handler(request: InlineQuery) -> None: results = InlineQueryResultsBuilder() add_article = get_articles_generator_for(results) lang = localizations.get_lang(request.sender.get('language_code')) def transform_query(transformer: TextProcessor, **kwargs): processed_str = transformer.process(request.query) description = transformer.get_description(request.query) parse_mode = "HTML" if transformer.use_html else "" localized_transformer_name = resolve_text_processor_name( transformer, lang) add_article(localized_transformer_name, processed_str, description, parse_mode, **kwargs) exclusive_processors = text_processors.match_exclusive_processors( request.query) if exclusive_processors: for processor in exclusive_processors: transform_query(processor) else: processors = text_processors.match_simple_processors(request.query) reversible_processors = [x for x in processors if x.is_reversible] non_reversible_processors = [ x for x in processors if not x.is_reversible ] for processor in non_reversible_processors: transform_query(processor) msg_id = msgdb.insert(request.query) keyboard = InlineKeyboardBuilder() keyboard.add_row().add(lang['decrypt'], callback_data=msg_id) for processor in reversible_processors: transform_query(processor, reply_markup=keyboard.build()) request.answer(results.build_list())