Подскажите как решить такую проблему:
Написал небольшой бот для телеграма, который регистрирует данные об автомобиле, введенные пользователем. Бот работает, но только когда пользователи вводят по очереди, а когда одновременно то введеные данные перезаписываются, к примеру:
юзер 1 вводит:
рег. номер - 123
марка - AUDI
модель - 100
юзер 2 вводит:
рег. номер - 456
марка - ВАЗ
модель - 2101
результат может быть:
рег. номер - 456
марка - AUDI
модель - 2101
сам код:
import telebot import config from time import sleep from telebot.types import Message bot = telebot.TeleBot(config.TOKEN) markup_menu = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True) btn_new = telebot.types.KeyboardButton('Запись нового авто') btn_verify = telebot.types.KeyboardButton('Проверка авто') markup_menu.add(btn_new, btn_verify) car_plate = '' car_make = '' car_model = '' @bot.message_handler(commands=['start']) def start(message: Message): bot.send_message(message.from_user.id, 'Для начала нажмите необходимую кнопку', reply_markup=markup_menu) @bot.message_handler(content_types=['text']) def new_verify(message: Message): if message.text.lower() == 'запись нового авто': begin_new_car = bot.send_message(message.from_user.id, 'Введите регистрационный номер:') bot.register_next_step_handler(begin_new_car, get_car_plate) def get_car_plate(message: Message): global car_plate car_plate = message.text.upper() bot.send_message(message.from_user.id, 'Введите марку авто:') bot.register_next_step_handler(message, get_car_make) def get_car_make(message: Message): global car_make car_make = message.text.upper() bot.send_message(message.from_user.id, 'Введите модель авто:') bot.register_next_step_handler(message, get_car_model) def get_car_model(message: Message): global car_model car_model = message.text.upper() res = """ Р/Н: {} Марка: {} Модель: {} -----------\n\n""" with open('cars.txt', 'a', encoding='utf8') as car_file: car_file.write(res.format(car_plate, car_make, car_model)) bot.send_message(message.from_user.id, 'Записано!') while True: try: bot.polling(none_stop = True) except: sleep(20)
Полагаю что перезаписываются данные в переменных. Получается что нужно для каждого юзера своя пременная, как-то так, не знаю.
Подскажите как решить данную проблему, может есть более подходящее решение.
Спасибо заранее.