Как правильно сохранить данные пользователя из Telegram bot в sqlite?
Подскажите, пожалуйста, в чем проблема: разбираю примеры с форумов, что-то не сходится при исполнении. В данном кейсе не удается перейти к блоку уведомления пользователя об успешной записи данных, данные также не сохраняются в БД. Пробовала использовать отдельно пример с записью данных отсюда: https://itnan.ru/post.php?c=1&p=552788. Диалог идёт, данные не сохраняются. Ошибки с отступами и пробелами проверила, поправила.
import sqlite3
import telebot
bot = telebot.TeleBot('TOKEN');
from telebot import types
connection = sqlite3.connect('DATABASE.db', check_same_thread=False)
cursor = connection.cursor()
def db_table_val(user_id: int, user_name: str, user_surname: str):
cursor.execute('INSERT INTO Регистрация (user_id, user_name, user_surname) VALUES (?, ?, ?)', (user_id, user_name, user_surname))
conn.commit()
name = '';
surname = '';
@bot.message_handler(content_types=['text'])
def get_text_messages(message):
if message.text == "Привет":
bot.send_message(message.from_user.id, "Привет! Спасибо, что присоединился к нашему проекту! Для регистрации напиши '/reg'")
elif message.text == "/help":
bot.send_message(message.from_user.id, "Напиши ""Привет""")
elif message.text == "/reg":
bot.send_message(message.from_user.id, "Как тебя зовут?");
bot.register_next_step_handler(message, get_name); #следующий шаг – функция get_name
else:
bot.send_message(message.from_user.id, "Я тебя не понимаю. Напиши /help.")
def get_name(message): #получаем фамилию
global name;
name = message.text;
bot.send_message(message.from_user.id, 'Какая у тебя фамилия?');
bot.register_next_step_handler(message, get_surname);
**if bot.register_next_step_handler(message, get_surname):
bot.send_message(message.from_user.id, 'Ваше имя добавлено в базу данных!')
us_id = message.from_user.id
us_name = message.from_user.name
us_sname = message.from_user.surname
db_table_val(user_id=us_id, user_name=us_name, user_surname=us_sname)
else:
bot.send_message(message.from_user.id, "Я тебя не понимаю. Напиши /help.")**
bot.polling(none_stop=True)