Подскажите логику, если юзер(сделал ошибку в тексте) после изменил сообщение, сделав его с пометкой "изменено", как можно поменять user.func , чтобы во время отправки в бд это было уже измененное сообщение.
Может есть какой-нибудь метод?
Вот код:
import telebot
import mysql.connector
from telebot import types, TeleBot
from telebot.types import Message
bot = telebot.TeleBot("")
# Подключение к MySQL
db = mysql.connector.connect(
host="",
user="",
passwd="",
port="",
database=""
)
cursor = db.cursor()
user_data = {}
# Последовательность шагов
class User:
def __init__(self, openvisit):
self.openvisit = openvisit
self.name = ''
self.email = ''
self.phone = ''
# Убрать клавиатуру
remove_keyboard = types.ReplyKeyboardRemove()
@bot.message_handler(commands=['start'])
def send_welcome(message):
# Меню кнопок
reg = types.ReplyKeyboardMarkup(one_time_keyboard=True)
reg_btn = types.KeyboardButton(text='Зарегистрироваться')
reg.add(reg_btn)
msg = bot.send_message(message.chat.id, "Здравствуйте, это бот-помощник, присутупим к регистрации?", reply_markup=reg)
bot.register_next_step_handler(msg, process_openvisit_step)
def process_openvisit_step(message):
user_id = message.from_user.id
user_data[user_id] = User(message.text)
msg = bot.send_message(message.chat.id, "Введите имя:", reply_markup=remove_keyboard)
bot.register_next_step_handler(msg, process_name_step)
def process_name_step(message):
user_id = message.from_user.id
user = user_data[user_id]
user.name = message.text
msg = bot.send_message(message.chat.id, "Введите Email:")
bot.register_next_step_handler(msg, process_email_step)
def process_email_step(message):
user_id = message.from_user.id
user = user_data[user_id]
user.email = message.text
msg = bot.send_message(message.chat.id, 'Введите сотовый номер без "8" и "+7" (Например: 7014441122):')
bot.edit_message_text(msg.chat.id, message.message_id, 'Введите сотовый номер без "8" и "+7" (Например: 7014441122):')
def process_phone_step(message):
user_id = message.from_user.id
user = user_data[user_id]
user.phone = message.text
# Меню кнопок
closereg = types.ReplyKeyboardMarkup(one_time_keyboard=True)
closereg_btn = types.KeyboardButton(text='Закончить регистрацию')
closereg.add(closereg_btn)
# Сохранение в БД
sql = "INSERT INTO users (user_id,name,email,phone) \
VALUES (%s, %s, %s, %s)"
val = (user_id, user.name, user.email, user.phone)
cursor.execute(sql, val)
db.commit()
msg = bot.send_message(message.chat.id, "Спасибо за регистрацию!",reply_markup=closereg)
bot.register_next_step_handler(msg, send_welcome)
# Enable saving next step handlers to file "./.handlers-saves/step.save".
# Delay=2 means that after any change in next step handlers (e.g. calling register_next_step_handler())
# saving will hapen after delay 2 seconds.
bot.enable_save_next_step_handlers(delay=2)
# Load next_step_handlers from save file (default "./.handlers-saves/step.save")
# WARNING It will work only if enable_save_next_step_handlers was called!
bot.load_next_step_handlers()
if __name__ == '__main__':
bot.polling(none_stop=True)