Неправильно работает цикл в боте
Делал бот-опросник, Цикл работает неправильно - вываливает все сообщения сразу. Как я понял, проблема с message.text, не понимаю как реализовать ожидание следующего сообщения в цикле. Пробовал next_step_handler, но похоже это так не работает)
import telebot
from telebot import types
import config
bot = telebot.TeleBot(config.token)
answers = []
@bot.message_handler(commands=['start'])
def start_message(message):
keyboard = types.ReplyKeyboardMarkup(True)
keyboard.row('М_ЧАТ_РУ')
bot.send_message(message.chat.id, text = 'Для начала тестирования нажмите на нужный тест.', reply_markup = keyboard )
@bot.message_handler(content_types = ['text'])
def button_message(message):
if message.text == 'М_ЧАТ_РУ':
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
butt1 = types.KeyboardButton("yes")
markup.add(butt1)
butt2 = types.KeyboardButton("no")
markup.add(butt2)
bot.send_message(message.chat.id, 'Вы проходите тест м-чат',reply_markup=markup)
quiz(message)
def quiz(message):
for i in range(len(config.m_chat_ru)):
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
menu1 = types.KeyboardButton("yes")
markup.add(menu1)
menu2 = types.KeyboardButton("no")
markup.add(menu2)
bot.send_message(message.chat.id, config.m_chat_ru[i], reply_markup=markup)
if 'yes' in message.text:
answers.append(0)
elif 'no' in message.text:
answers.append(1)
else:
bot.send_message(message.chat.id, 'Не понял ответ, нажмите да или нет')
result(message)
def result(message):
if answers[1] == 0 or answers[4] == 0 or answers[11] == 0:
bot.send_message(message.chat.id, 'Требуется дополнительная проверка, возможно расстройство аутистического спектра')
sq = sum(answers)
bot.send_message(message.chat.id, 'Ваш балл:', sq)
if sq <= 2:
bot.send_message(message.chat.id, 'Низкий риск')
elif sq <= 7:
bot.send_message(message.chat.id, 'Средний риск')
else:
bot.send_message(message.chat.id, 'Высокий риск')
else:
sq = sum(answers)
bot.send_message(message.chat.id, 'Ваш балл:', sq)
if sq <= 2:
bot.send_message(message.chat.id, 'Низкий риск')
elif sq <= 7:
bot.send_message(message.chat.id, 'Средний риск')
else:
bot.send_message(message.chat.id, 'Высокий риск')
if __name__ == '__main__':
bot.polling()