Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from aiogram.dispatcher.filters import Command
- from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton, Message, CallbackQuery
- from aiogram.utils.callback_data import CallbackData
- from loader import dp
- import logging
- # кнопки будут выстраиваться по две на строку
- choice = InlineKeyboardMarkup(row_width=2)
- # Первое значение - это префикс, далее вводим столько аргументов сколько хотим.
- callback = CallbackData("action", "name", "description")
- # при нажатии в callback попадают все данные внесенные методом new
- edit_name = InlineKeyboardButton(text="Edit Name",
- callback_data=callback.new(name="edit_name", description="this button is Edit Button"))
- choice.insert(edit_name)
- edit_desc = InlineKeyboardButton(text="Edit Description",
- callback_data=callback.new(name="edit_name",
- description="this button is Edit Desription Button"))
- choice.insert(edit_desc)
- edit_about = InlineKeyboardButton(text="Edit About", callback_data=callback.new(name="edit_name",
- description="this button is Edit "
- "About Button"))
- choice.insert(edit_about)
- edit_botpic = InlineKeyboardButton(text="Edit Botpic", callback_data=callback.new(name="edit_name",
- description="this button is Edit "
- "Botpic"))
- choice.insert(edit_botpic)
- edit_commands = InlineKeyboardButton(text="Edit commands",
- callback_data=callback.new(name="edit_name",
- description="this button is Edit Commands Button"))
- choice.insert(edit_commands)
- back_to_bot = InlineKeyboardButton(text="Back to Bot", callback_data=callback.new(name="edit_name",
- description="this button is Back To "
- "Bot Button"))
- choice.insert(back_to_bot)
- # командой /buttons вызывает сообщение и наши кнопки
- @dp.message_handler(Command("buttons"))
- async def show_items(message: Message):
- await message.answer(text="Edit @Sberleadbot info. \n"
- "Name: Бот для Заданий на Курсе Udemy\n"
- "Description: ? \n"
- "About: ?\n"
- "Botpic: ? no botpic \n"
- "Commands: no commands yet",
- reply_markup=choice)
- @dp.callback_query_handler()
- async def buying_pear(call: CallbackQuery):
- # Обязательно сразу сделать answer, чтобы убрать "часики" после нажатия на кнопку.
- # Укажем cache_time, чтобы бот не получал какое-то время апдейты, тогда нижний код не будет выполняться.
- await call.answer(cache_time=60)
- callback_data = call.data
- # после нажатия кнопки бот выведет данные аргумента description
- await call.message.answer(f"{callback_data.split(':')[2]}")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement