Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. import logging
  2. import config
  3. from telegram import InlineKeyboardButton, InlineKeyboardMarkup
  4. from telegram.ext import Updater, CommandHandler, CallbackQueryHandler
  5.  
  6. logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
  7. level=logging.INFO)
  8. def build_menu(buttons,
  9. n_cols):
  10. menu = [buttons[i:i + n_cols] for i in range(0, len(buttons), n_cols)]
  11. return menu
  12.  
  13. def start(bot, update):
  14. keyboard = [[InlineKeyboardButton("Москва", callback_data='1'),
  15. InlineKeyboardButton("Option 2", callback_data='2')],
  16.  
  17. [InlineKeyboardButton("Option 3", callback_data='3')]]
  18.  
  19. reply_markup = InlineKeyboardMarkup(keyboard)
  20. update.message.reply_text('Добро пожаловать в наш магазин ! :\n➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖ \n Выбери свой город ⬇️', reply_markup=reply_markup)
  21.  
  22.  
  23. def button(bot, update):
  24. query = update.callback_query
  25.  
  26.  
  27. if query.data == "1":
  28. bot.delete_message(chat_id=query.message.chat_id,
  29. message_id=query.message.message_id)
  30. button_list = [
  31. InlineKeyboardButton("col 1",callback_data='1'),
  32. InlineKeyboardButton("col 2",callback_data='2'),
  33. InlineKeyboardButton("row 2", callback_data='3')
  34. ]
  35. reply_markup = InlineKeyboardMarkup(build_menu(button_list, n_cols=2))
  36. bot.send_message(query.message.chat_id, "A two-column menu", reply_markup=reply_markup)
  37. elif query.data == "3":
  38. bot.delete_message(chat_id=query.message.chat_id,
  39. message_id=query.message.message_id)
  40. start(bot, update)
  41.  
  42.  
  43. def help(bot, update):
  44. update.message.send_me("Use /start to test this bot.")
  45.  
  46.  
  47. def error(bot, update, error):
  48. logging.warning('Update "%s" caused error "%s"' % (update, error))
  49.  
  50.  
  51. # Create the Updater and pass it your bot's token.
  52. updater = Updater(config.token)
  53.  
  54. updater.dispatcher.add_handler(CommandHandler('start', start))
  55. updater.dispatcher.add_handler(CallbackQueryHandler(button))
  56. updater.dispatcher.add_handler(CommandHandler('help', help))
  57. updater.dispatcher.add_error_handler(error)
  58.  
  59. # Start the Bot
  60. updater.start_polling()
  61.  
  62. # Run the bot until the user presses Ctrl-C or the process receives SIGINT,
  63. # SIGTERM or SIGABRT
  64. updater.idle()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement