Фильтрация текста по ФИО от пользователей в чат-боте вк vkbottle
Имеется бот, в котором реализуется многоуровневая система кнопок, при нажатии на которые выдаётся определённое сообщение.
@bot.on.message(text=["Начать", "начать", "Ку", "Привет"])
@bot.on.message(payload={'cmd': 'menu'})
async def start(message: Message):
user_info = await bot.api.users.get(message.from_id)
print(user_info[0].first_name)
await message.answer("Привет, {}!??\n Пожалуйста, укажите в какую категорию посетителей Вы входите, чтобы я мог помочь Вам."
.format(user_info[0].first_name),
keyboard=(
Keyboard(one_time=True, inline=False)
.add(Text('Волонтёр'), color=KeyboardButtonColor.PRIMARY)
.row()
.add(Text('Абитуриент'), color=KeyboardButtonColor.POSITIVE)
.row()
.add(Text('Обычный посетитель'), color=KeyboardButtonColor.SECONDARY)
)
)
# ветка для абитуриентов
@bot.on.message(text='Абитуриент')
async def enrollee(message: Message):
await message.answer("О, так у нас новенькие в рядах?"
\n\n"
"Желаешь ли ты вступить в ряды наших волонтёров?",
keyboard=(
Keyboard(one_time=True, inline=False)
.add(Text('Да'), color=KeyboardButtonColor.POSITIVE)
.row()
.add(Text('Нет'), color=KeyboardButtonColor.NEGATIVE)
.row()
.add(Text('Назад', payload={'cmd': 'menu'}), color=KeyboardButtonColor.SECONDARY)
)
)
@bot.on.message(text='Да') # если человек хочет записаться
async def enrollee(message: Message):
await message.answer("Это шикарная новость!?\n"
"Прежде чем я расскажу тебе про все наши направления, давай заполним небольшую анкету с твоими данными.\n\n"
"Напиши, пожалуйста, свои ФИО",
)
@bot.on.message() # запись ФИО в таблицу
async def enrolle(message: Message):
l_msg = await bot.api.messages.get_conversations()
full_name = l_msg.items[0].last_message.text
uid = l_msg.items[0].last_message.from_id
url = "https://vk.com/id" + str(uid)
newrec = ["", full_name, "", "", "", "", url]
wk = worksheet.insert_row(newrec, 2)
await message.answer("Получилось!")
Проблема заключается в том, что система ломается на этапе ввода ФИО пользователем. Если пользователь захочет нажать на любую другую кнопку, помимо "Абитуриент", то его выкидывает на этап заполнения данных, после записывает введёное им сообщение в гугл таблицу.
Пример.
Как добавить условие отбора текста по ФИО? Пытался реализовать это через регулярные выражения и rules, но результата никакого
