538f1e3972
- Pyrogram core is now fully asynchronous - Ditched Python 3.5, welcome 3.6 as minimum version. - Moved all types to pyrogram.types - Turned the Filters class into a module (filters) - Moved all filters to pyrogram.filters - Moved all handlers to pyrogram.handlers - Moved all emoji to pyrogram.emoji - Renamed pyrogram.api to pyrogram.raw - Clock is now synced with server's time - Telegram schema updated to Layer 117 - Greatly improved the TL compiler (proper type-constructor hierarchy) - Added "do not edit" warning in generated files - Crypto parts are executed in a thread pool to avoid blocking the event loop - idle() is now a separate function (it doesn't deal with Client instances) - Async storage, async filters and async progress callback (optional, can be sync too) - Added getpass back, for hidden password inputs
61 lines
2.2 KiB
ReStructuredText
61 lines
2.2 KiB
ReStructuredText
inline_queries
|
|
==============
|
|
|
|
This example shows how to handle inline queries.
|
|
|
|
Two results are generated when users invoke the bot inline mode, e.g.: @pyrogrambot hi.
|
|
It uses the @on_inline_query decorator to register an InlineQueryHandler.
|
|
|
|
.. code-block:: python
|
|
|
|
from pyrogram import (
|
|
Client, InlineQueryResultArticle, InputTextMessageContent, InlineKeyboardMarkup, InlineKeyboardButton
|
|
)
|
|
|
|
app = Client("my_bot", bot_token="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11")
|
|
|
|
|
|
@app.on_inline_query()
|
|
def answer(client, inline_query):
|
|
inline_query.answer(
|
|
results=[
|
|
InlineQueryResultArticle(
|
|
title="Installation",
|
|
input_message_content=InputTextMessageContent(
|
|
"Here's how to install **Pyrogram**"
|
|
),
|
|
url="https://docs.pyrogram.org/intro/install",
|
|
description="How to install Pyrogram",
|
|
thumb_url="https://i.imgur.com/JyxrStE.png",
|
|
reply_markup=InlineKeyboardMarkup(
|
|
[
|
|
[InlineKeyboardButton(
|
|
"Open website",
|
|
url="https://docs.pyrogram.org/intro/install"
|
|
)]
|
|
]
|
|
)
|
|
),
|
|
InlineQueryResultArticle(
|
|
title="Usage",
|
|
input_message_content=InputTextMessageContent(
|
|
"Here's how to use **Pyrogram**"
|
|
),
|
|
url="https://docs.pyrogram.org/start/invoking",
|
|
description="How to use Pyrogram",
|
|
thumb_url="https://i.imgur.com/JyxrStE.png",
|
|
reply_markup=InlineKeyboardMarkup(
|
|
[
|
|
[InlineKeyboardButton(
|
|
"Open website",
|
|
url="https://docs.pyrogram.org/start/invoking"
|
|
)]
|
|
]
|
|
)
|
|
)
|
|
],
|
|
cache_time=1
|
|
)
|
|
|
|
|
|
app.run() # Automatically start() and idle() |