Advertisement
ivandev

inlinetask

Oct 24th, 2020
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.68 KB | None | 0 0
  1. from aiogram.dispatcher.filters import Command
  2. from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton, Message, CallbackQuery
  3. from aiogram.utils.callback_data import CallbackData
  4. from loader import dp
  5. import logging
  6.  
  7. # кнопки будут выстраиваться по две на строку
  8. choice = InlineKeyboardMarkup(row_width=2)
  9.  
  10. # Первое значение - это префикс, далее вводим столько аргументов сколько хотим.
  11. callback = CallbackData("action", "name", "description")
  12.  
  13. # при нажатии в callback попадают все данные внесенные методом new
  14. edit_name = InlineKeyboardButton(text="Edit Name",
  15.                                  callback_data=callback.new(name="edit_name", description="this button is Edit Button"))
  16. choice.insert(edit_name)
  17.  
  18. edit_desc = InlineKeyboardButton(text="Edit Description",
  19.                                  callback_data=callback.new(name="edit_name",
  20.                                                             description="this button is Edit Desription Button"))
  21. choice.insert(edit_desc)
  22.  
  23. edit_about = InlineKeyboardButton(text="Edit About", callback_data=callback.new(name="edit_name",
  24.                                                                                 description="this button is Edit "
  25.                                                                                             "About Button"))
  26. choice.insert(edit_about)
  27.  
  28. edit_botpic = InlineKeyboardButton(text="Edit Botpic", callback_data=callback.new(name="edit_name",
  29.                                                                                   description="this button is Edit "
  30.                                                                                               "Botpic"))
  31. choice.insert(edit_botpic)
  32.  
  33. edit_commands = InlineKeyboardButton(text="Edit commands",
  34.                                      callback_data=callback.new(name="edit_name",
  35.                                                                 description="this button is Edit Commands Button"))
  36. choice.insert(edit_commands)
  37.  
  38. back_to_bot = InlineKeyboardButton(text="Back to Bot", callback_data=callback.new(name="edit_name",
  39.                                                                                   description="this button is Back To "
  40.                                                                                               "Bot Button"))
  41. choice.insert(back_to_bot)
  42.  
  43.  
  44. # командой /buttons вызывает сообщение и наши кнопки
  45. @dp.message_handler(Command("buttons"))
  46. async def show_items(message: Message):
  47.     await message.answer(text="Edit @Sberleadbot info. \n"
  48.                               "Name: Бот для Заданий на Курсе Udemy\n"
  49.                               "Description: ? \n"
  50.                               "About: ?\n"
  51.                               "Botpic: ? no botpic \n"
  52.                               "Commands: no commands yet",
  53.                          reply_markup=choice)
  54.  
  55.  
  56. @dp.callback_query_handler()
  57. async def buying_pear(call: CallbackQuery):
  58.     # Обязательно сразу сделать answer, чтобы убрать "часики" после нажатия на кнопку.
  59.     # Укажем cache_time, чтобы бот не получал какое-то время апдейты, тогда нижний код не будет выполняться.
  60.     await call.answer(cache_time=60)
  61.  
  62.     callback_data = call.data
  63.     # после нажатия кнопки бот выведет данные аргумента description
  64.     await call.message.answer(f"{callback_data.split(':')[2]}")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement