Sepehr
Sepehr

Reputation: 31

how to get answers of a ReplyKeyboardMarkup in pyrogram?

I want when someone choose an ReplyKeyboardMarkup keys Program do a job for example:

@Client.on_message(filters.command('start'))
async def start(client: Client, message: Message):
await message.reply_text('Click an option',
                         reply_markup=ReplyKeyboardMarkup(
                           [
                            ['Option A'],
                            ['Option B']
                           ],
                           resize_keyboard=True, one_time_keyboard=True)
                       )

For example in this situation I want when user click on Option A the bot does something but it doesn't.

I tried this code but it didnt work either:

@Client.on_message(filters.regex('Option A') | filters.regex('Option B'))
def robot(client: Client, message: Message):
    if filters.text() == "Option A":
       def fa2en(client: Client, message: Message):
           message.reply_text('bot prints something')

Upvotes: 0

Views: 570

Answers (1)

LegzDev
LegzDev

Reputation: 565

To get the text of the message use message.text, is it really necessary anyway? the filters.regex() should suffice

@Client.on_message(filters.command("start"))
async def start(client: Client, message: Message):
    await message.reply_text("Click an option", reply_markup=ReplyKeyboardMarkup(
                           [
                            ["Option A"],
                            ["Option B"]
                           ],
                           resize_keyboard=True, one_time_keyboard=True)
                       )

@Client.on_message(filters.regex("Option A") | filters.regex("Option B"))
async def robot(client: Client, message: Message):
    if message.text == "Option A":
        await message.reply_text("bot prints something")
    # does something...

Upvotes: 1

Related Questions