Не срабатывает bot.register_next_step_handler() telebot
Я хотел сделать так, чтобы у пользователя был выбор, добавить ли ему свои вопросы?
В случае, если да, то бот ему предлагал написать их. Он их занесет в базу данных, а потом можно будет посмотреть свой список вопросов.
Терминал ошибок не выдает
def choiceQuestions (message):
#кнопка выбора
markup = types.ReplyKeyboardMarkup ()
yesButton = types.KeyboardButton ("Да")
noButton = types.KeyboardButton ("Нет")
markup.row (yesButton, noButton)
#сообщение перед кнопкой
bot.send_message (message.chat.id, "Я имею базовые вопросы: \nКак дела? Что делаешь? \nКак спалось? Что снилось? \n\nНо вы можете добавить до пяти своих вопросов. Добавить?", reply_markup=markup)
if message.text == "Да":
bot.register_next_step_handler (message, dataBase)
def dataBase (message):
conn = sqlite3.connect ("database.sql")
cur = conn.cursor ()
cur.execute ("CREATE TABLE IF NOT EXISTS questions (id int auto_increment primary key, question varchar (50), timee varchar (50))")
conn.commit ()
cur.close ()
conn.close ()
def firstQuestion (message):
global frstQue
frstQue = message.text ()
bot.send_message (message.chat.id, "Введи первый вопрос")
bot.register_next_step_handler (message, secondQuestion)
Ответы (1 шт):
Автор решения: Иван Ипатов
→ Ссылка
В bot.register_next_step_handler() вы должны передать сообщение с вопросом для пользования и 2-ым аргументом функцию для дальнейшей работы с полученными данными.
def choice_questions (message):
#кнопка выбора
markup = types.ReplyKeyboardMarkup()
yes_button = types.KeyboardButton("Да")
no_button = types.KeyboardButton("Нет")
markup.row(yes_button, no_button)
#сообщение перед кнопкой
sent = bot.send_message (message.chat.id, "Я имею базовые вопросы: \nКак дела? Что делаешь? \nКак спалось? Что снилось? \n\nНо вы можете добавить до пяти своих вопросов. Добавить?", reply_markup=markup)
bot.register_next_step_handler (sent, check_yes)
def check_yes(message):
if message.text == "Да":
database()
else:
bot.send_message(message.chat.id, "Ответ не да")
def database():
conn = sqlite3.connect("database.sql")
cur = conn.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS questions (id int auto_increment primary key, question varchar (50), timee varchar (50))")
conn.commit()
cur.close()
conn.close()
def first_question(message):
global frst_que
frst_que = message.text ()
bot.send_message (message.chat.id, "Введи первый вопрос")
bot.register_next_step_handler (message, second_question)
И ещё в питоне принято называть переменные/функции в таком формате: this_is_var, а не camelCase.