Example #1
0
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)
Example #2
0
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)
Example #3
0
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())