Regela

PythonBotKeyboardsAIOGRAM

Oct 13th, 2022
968
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.98 KB | None | 0 0
  1. import logging
  2.  
  3. from aiogram import Bot, Dispatcher, executor, types
  4. from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton, ReplyKeyboardMarkup, KeyboardButton
  5.  
  6. from settings import API_TOKEN
  7.  
  8. logging.basicConfig(level=logging.DEBUG)
  9.  
  10. bot = Bot(token=API_TOKEN)
  11.  
  12. dp = Dispatcher(bot)
  13.  
  14.  
  15. @dp.message_handler(commands=['start', 'help'])
  16. async def send_welcome(message: types.Message):
  17.  
  18.     markup = ReplyKeyboardMarkup().add(
  19.         KeyboardButton("ГЛАВНАЯ КНОПКА")
  20.     )
  21.  
  22.     await message.reply("Hi!\nI'm EchoBot!\nPowered by aiogram.", reply_markup=markup)
  23.     await message.answer(f"Your id is {message.from_user.id}")
  24.  
  25.     logging.info(f"{message.from_user.username}: {message.text}")
  26.  
  27.  
  28. @dp.message_handler(regexp='(^cat[s]?$|puss)')
  29. async def cats(message: types.Message):
  30.     await message.reply(text='Cats are here 😺')
  31.     logging.info(f"{message.from_user.username}: {message.text}")
  32.  
  33.  
  34. @dp.message_handler()
  35. async def echo(message: types.Message):
  36.  
  37.     markup = InlineKeyboardMarkup().add(
  38.         InlineKeyboardButton("Кнопка1", callback_data="but_1"),
  39.         InlineKeyboardButton("Кнопка2", callback_data="but_2"),
  40.         InlineKeyboardButton("JBT", callback_data="jbt"),
  41.     )
  42.  
  43.     await message.answer(message.text, reply_markup=markup)
  44.     logging.info(f"{message.from_user.username}: {message.text}")
  45.  
  46.  
  47. @dp.callback_query_handler(text_startswith="but_")
  48. async def but_pressed(call: types.CallbackQuery):
  49.     logging.info(f"{call.from_user.username}: {call.data}")
  50.  
  51.     markup = ReplyKeyboardMarkup(resize_keyboard=True)
  52.     markup.add(
  53.         KeyboardButton("ГЛАВНАЯ КНОПКА"),
  54.     )
  55.     markup.row(
  56.         KeyboardButton("Кнопка3", request_location=True),
  57.     )
  58.     markup.insert("Кнопка4")
  59.  
  60.     await call.message.answer(text=f"You pressed {call.data}", reply_markup=markup)
  61.     await call.answer()
  62.  
  63.  
  64. if __name__ == '__main__':
  65.     executor.start_polling(dp, skip_updates=True)
  66.  
Advertisement
Add Comment
Please, Sign In to add comment