Есть проблема по поводу телеграмм бота, а именно с клавиатурой.
Вот сам код
Проблема в том, что когда я пишу /play, потом нажимаю на кнопку да, потом нажимаю на кнопку спорт, потом ничего не происходит, хотя хендлер за это должен отвечать, но ничего не происходит
Вот сам код
Python:
import telebot
import sqlite3
import time
from telebot import types
conn = sqlite3.connect('sport.db')
cursor = conn.cursor()
bot = telebot.TeleBot('1236081182:AAHf28ajNPWdz42ZwwK4BCYa-hZpFnOuwUc')
commands = '\n1.help\n2.play\n3.В разработке'
@bot.message_handler(commands=['start'])
def start_command(message):
bot.send_message(message.chat.id, 'Привет, я бот викторина, вот мои команды' + commands)
@bot.message_handler(commands=['help'])
def help_command(message):
bot.send_message(message.chat.id, 'Еще раз привет! Вот мои команды' + commands + '\nЕсли у вас какие-то вопросы или предложения, можете написать сюда->\nМой телеграмм')
@bot.message_handler(commands=['play'])
def victorina(message):
keyboard = types.InlineKeyboardMarkup(row_width=2)
key_yes = types.InlineKeyboardButton(text='Да', callback_data='yes')
keyboard.add(key_yes)
key_no = types.InlineKeyboardButton(text='Нет', callback_data='no')
keyboard.add(key_no)
bot.send_message(message.chat.id, 'Вы запустили викторину.Продолжить?', reply_markup=keyboard)
#Клавиатура для жанров игры
keyboard2 = types.InlineKeyboardMarkup(row_width=2)
key_sport = types.InlineKeyboardButton(text='Спорт', callback_data='sport')
keyboard2.add(key_sport)
@bot.callback_query_handler(func=lambda call: True)
def keyboard(call):
if call.data == 'yes':
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text='Хорошо, выберете жанр игры?', reply_markup=keyboard2)
elif call.data == 'no':
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text='Нажми -> /help_play')
@bot.callback_query_handler(func=lambda call: True)
def Genre(call):
if call.data == 'sport':
bot.send_message(call.message.chat.id, text='Игра начнется через 3 секунды!')
time.sleep(1)
bot.edit_message_text(chat_id = call.message.chat.id, message_id = call.message.message_id, text='3')
time.sleep(1)
bot.send_message(call.message.chat.id, text='2')
time.sleep(1)
bot.send_message(call.message.chat.id, text='1')
time.sleep(1)
bot.send_message(call.message.chat.id, text='Игра началась!!!')
@bot.message_handler(commands=['help_play'])
def help_play_commands(message):
bot.send_message(message.chat.id, 'Это помощь по викторине. Запустите игру с помощью /play\nСкоро дополниться')
if __name__ == '__main__':
bot.polling(none_stop=True)