Как сделать, чтобы чат бот ВК на питоне отвечал каждому пользователю по отдельности?
Пишу простого чат бота для квиза на питоне. Проблема заключается в том, что если люди пишут ему в разное время, то все хорошо работает и он им отвечает каждому по отдельности. А когда люди пишут ему одновременно, то он работает сразу на всех и мешает их сообщения и свои ответы. Например: Один пользователь один отвечает на вопрос, а бот засчитывает это за ответ и другого пользователя, поэтому сбивается вся программа. Подскажите, пожалуйста, как это исправить.
for event in longpoll.listen():
if event.type == VkEventType.MESSAGE_NEW:
if event.to_me:
msg = event.text.lower()
id = event.user_id
if msg == 'хочу проверить свои знания':
for i in id_list:
if i == id:
i = 1
break
if i == 1:
sender(id, 'Вы уже вытянули свой билет')
else:
sender(id, answer, old_keyboard)
if msg == 'тянуть билет':
ticket_num = random.randint(1,max_value)
ticket_txt = tickets.tickets[ticket_num]['questions']['first']
id_list.append(id)
sender(id, ticket_txt)
questions_got = 1
if questions_got == 1 and msg != 'тянуть билет':
if msg == tickets.tickets[ticket_num]['answers']['first'].lower():
ticket_txt = 'Правильно! Следующий вопрос: ' + tickets.tickets[ticket_num]['questions']['second']
sender(id, ticket_txt)
questions_got = 2
right_answers += 1
else:
ticket_txt = 'К сожалению, вы ошиблись. \n Правильный ответ: ' + tickets.tickets[ticket_num]['answers']['first'] + '\nСледующий вопрос:\n ' + tickets.tickets[ticket_num]['questions']['second']
sender(id, ticket_txt)
questions_got = 2
elif questions_got == 2 and msg != 'тянуть билет':
if msg == tickets.tickets[ticket_num]['answers']['second'].lower():
ticket_txt = 'Правильно! Следующий вопрос: ' + tickets.tickets[ticket_num]['questions']['third']
sender(id, ticket_txt)
questions_got = 3
right_answers += 1
else:
ticket_txt = 'К сожалению, вы ошиблись. \n Правильный ответ: ' + tickets.tickets[ticket_num]['answers']['second'] + '\nСледующий вопрос:\n ' + tickets.tickets[ticket_num]['questions']['third']
sender(id, ticket_txt)
questions_got = 3
elif questions_got == 3 and msg != 'тянуть билет':
if msg == tickets.tickets[ticket_num]['answers']['third'].lower():
right_answers += 1
ticket_txt = 'Правильно!\n' + 'Вы ответили правильно на ' + str(right_answers) + ' вопросов.'
sender(id, ticket_txt)
else:
ticket_txt = 'К сожалению, вы ошиблись. \n Правильный ответ: ' + tickets.tickets[ticket_num]['answers']['second'] + '\nВы ответили правильно на ' + str(right_answers) + ' вопросов.'
sender(id, ticket_txt)