Телеграм-бот вместо перезапуска продолжает выполнять заявку
Есть рабочий телеграм-бот, который присылает приветствие и предлагает оформить заявку. Результат отправляет в телеграм-чат определенному пользователю.
Но при этом, если в процессе оформления заявки, пользователь остановится "на пол пути", очистит историю и снова запустит бота командой /start , то бот запустится не с самого начала, а продолжит выполнять заявку.
Так же, если пользователь отправил заявку, отсутствует возможность сделать новую.
Помогите подправить код. Чтобы если нажать /start при выполнении работы ботом, он запускался с самого начала.
И чтобы когда заявка создана и отправлена, была возможность тут же создать новую заявку.
import telebot
from telebot import types
TOKEN = 'ТОКЕНИЗБОТФАЗЕРА'
bot = telebot.TeleBot(TOKEN)
user2_chat_id = 'ИДЕНТИФИКАТОРЧАТА'
class Application:
@staticmethod
def display(message):
bot.send_message(message.chat.id, "Ваше имя:")
bot.register_next_step_handler(message, process_name_step)
def process_name_step(message):
global name
name = message.text
chat_id = message.chat.id
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=2)
leftside = types.KeyboardButton('АДРЕС1')
rightside = types.KeyboardButton('АДРЕС2')
markup.add(leftside, rightside)
bot.send_message(message.chat.id, "Выберите адрес:", reply_markup=markup)
bot.register_next_step_handler(message, process_bereg_step)
def process_bereg_step(message):
global bereg
chat_id = message.chat.id
bereg = message.text
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=2)
DHC = types.KeyboardButton('УСЛУГА1')
TO = types.KeyboardButton('УСЛУГА2')
comp = types.KeyboardButton('УСЛУГА3')
buy = types.KeyboardButton('УСЛУГА4')
GRM = types.KeyboardButton('УСЛУГА5')
doos = types.KeyboardButton('УСЛУГА6')
inshe = types.KeyboardButton('УСЛУГА7')
markup.add(DHC, TO, comp, buy, GRM, doos, inshe)
bot.send_message(message.chat.id, "Выберите услугу:", reply_markup=markup)
bot.register_next_step_handler(message, process_posluga_step)
def process_posluga_step(message):
global posluga
chat_id = message.chat.id
posluga = message.text
bot.send_message(chat_id, "Ваш телефон для связи:")
bot.register_next_step_handler(message, process_phone_step)
def process_phone_step(message):
global phone
chat_id = message.chat.id
phone = message.text
bot.send_message(chat_id, "Укажите код техники:")
bot.register_next_step_handler(message, process_text_step)
def process_text_step(message):
chat_id = message.chat.id
text = message.text
bot.send_message(chat_id, f"Спасибо. Свяжемся")
bot.send_message(user2_chat_id, f"Имя: {name}\n\nАдрес: {bereg}\n\nУслуга: {posluga}\n\nТелефон: {phone}\n\nКод: {text}")
@bot.message_handler(commands=['start'])
def send_welcome(message):
photo = open('КартинкаПриветствия.jpg', 'rb')
bot.send_photo(message.chat.id, photo)
bot.send_message(message.chat.id, f"ПРИВЕТСТВЕННЫЙ ТЕКСТ", parse_mode="HTML")
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=2)
itembtn1 = types.KeyboardButton('Оформить заявку')
markup.add(itembtn1)
bot.send_message(message.chat.id, "Нажмите кнопку для оформления заявки", reply_markup=markup)
@bot.message_handler(func=lambda message: True)
def echo_all(message):
if message.text == 'Оформить заявку':
Application.display(message)
bot.polling(none_stop=True)