Нужно чтобы бот переходил на следующий вопрос только после нажатия пользователя на инлайн кнопку с правильным ответом. мой код:
import telebot
import random
import csv
from telebot import types
from random import shuffle
# Создаем экземпляр бота
bot = telebot.TeleBot(ТОКЕН)
# Загружаем список вопросов
qestions = []
q_list = []
with open('data/qestions.csv') as q:
QS = csv.reader(q)
qestions=list(QS)
a=str(qestion).split(';')
shuffle(q_list)
quan=len(q_list)
#приветсвие и запуск теста
@bot.message_handler(commands=["start"])
def get_text_messages(message, res=False):
keyboard = types.InlineKeyboardMarkup();
key_begin = types.InlineKeyboardButton(text="Начнем", callback_data='begin');
keyboard.add(key_begin);
bot.send_message(message.from_user.id, text="Привет, я Бот-тест", reply_markup=keyboard)
numr=0
@bot.callback_query_handler(func=lambda call: True)
def reg(call):
if call.data == 'begin':
numq=1
for q in q_list:
if q[1]!="":
sti = open(q[1], 'rb')
bot.send_sticker(call.from_user.id, sti)
else: pass
keyboard = types.InlineKeyboardMarkup(); #наша клавиатура
key_ans1 = types.InlineKeyboardButton(text=q[3], callback_data='trye'); #кнопка ответ 1
keyboard.add(key_ans1); #добавляем кнопку в клавиатуру
key_ans2= types.InlineKeyboardButton(text=q[4], callback_data='false'); #кнопка ответ 2
keyboard.add(key_ans2);
key_ans3= types.InlineKeyboardButton(text=q[5][:-1], callback_data='false'); #кнопка ответ 3
keyboard.add(key_ans3);
bot.send_message(call.from_user.id, text="Вопрос №" + str(numq) +": \n" + q[2], reply_markup=keyboard)
numq=numq+1
if call.data == 'trye':
global numr
bot.answer_callback_query(call.id)
bot.send_message(call.from_user.id, 'Правильный ответ!')
numr=numr+1
bot.send_message(call.from_user.id, text='Правильных ответов:' + str(numr))
#сообщение о неправильном ответе
@bot.callback_query_handler(func=lambda c: c.data == 'false')
def process_callback_wrong(callback_query: types.CallbackQuery):
bot.answer_callback_query(callback_query.id)
bot.send_message(callback_query.from_user.id, 'Ответ неверный')
bot.polling(none_stop=True, interval=0)