У меня есть бот в вк, который при получении сообщения "Сообщить об ошибке" предлагает пользователю ввести текст, чтобы описать, что произошло, который после отправляется админу. Вот та часть кода:
def message_fail():
try:
for event in longpoll.listen():
if event.type == VkEventType.MESSAGE_NEW and event.to_me and event.text:
mess = str(event.user_id)
mess_fail = event.text
vk.messages.send(keyboard = keyboards.keyboard1.get_keyboard(), user_id=event.user_id, message='Сообщение отправлено администратору!.', random_id = random_id())
vk.messages.send(user_id=admin_id, message='Поступило сообщение об ошибке от vk.com/id' + mess + '\n\nТекст обращения: ' + mess_fail, random_id = random_id())
break
except Exception as e:
vk.messages.send(keyboard = keyboards.keyboard.get_keyboard(), user_id=event.user_id, message="Произошла неизвестная ошибка", random_id = random_id())
for event in longpoll.listen():
if event.type == VkEventType.MESSAGE_NEW and event.to_me:
if event.text == 'Сообщить об ошибке':
vk.messages.send(user_id=event.user_id, message='Опишите ошибку, как можно подробнее', random_id = random_id())
message_fail()
Всё это дело работает, но есть проблема. Если один пользователь напишет "Сообщить об ошибке", получит сообщение, что надо ввести описание ошибки, а в этот же момент боту напишет другой пользователь, то бот отправит тот текст, который написал второй пользователь. Это всё происходит из-за
for event in longpoll.listen():
, но я не смог иначе реализовать цепочку сообщений. Подскажите, как пофиксить это. Буду благодарен.