Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from telegram import (
- Update, ReplyKeyboardMarkup,
- InlineKeyboardMarkup, InlineKeyboardButton)
- from telegram.ext import (
- Application, CommandHandler, MessageHandler, ContextTypes, filters, CallbackQueryHandler)
- from my_settings import API
- async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
- """Отправляет сообщение с inline-кнопками для выбора валюты."""
- keyboard = [
- [InlineKeyboardButton("RUB", callback_data='RUB'), InlineKeyboardButton("USD", callback_data='USD')],
- [InlineKeyboardButton("EUR", callback_data='EUR'), InlineKeyboardButton("BTC", callback_data='BTC')]
- ]
- reply_markup = InlineKeyboardMarkup(keyboard)
- # Отправляем сообщение с нашей inline-клавиатурой
- await context.bot.send_message(chat_id=update.effective_chat.id,
- text='Пожалуйста, выберите валюту:',
- reply_markup=reply_markup)
- async def handle_inline_buttons(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
- """
- Обработчик нажатия на inline-кнопки.
- """
- query = update.callback_query
- await query.answer() # Обязательно отвечаем на callback, чтобы Telegram не "подвисал".
- # Достаем из callback_data название валюты
- chosen_currency = query.data
- # Можно отредактировать существующее сообщение или отправить новое:
- # 1) Отправляем новое сообщение
- await query.message.reply_text(f"Вы выбрали валюту: {chosen_currency}")
- # 2) Или отредактировать то же сообщение
- # await query.edit_message_text(f"Вы выбрали валюту: {chosen_currency}")
- def main():
- """Запускает бота."""
- # Замените 'YOUR_TOKEN' на токен вашего бота
- application = Application.builder().token(API).build()
- # Добавляем обработчик команды /start
- application.add_handler(CommandHandler('start', start))
- # Обработчик колбэков (нажатий на inline-кнопки)
- application.add_handler(CallbackQueryHandler(handle_inline_buttons))
- # Запускаем бота
- application.run_polling()
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement