Не завершается состояние aiogram
Всем здравствуйте, недавно начал изучать ботов, сейчас знакомлюсь с конечными автоматами. Нужно получать у пользователя номер или почту в зависимости от его выбора. Всё привязано к inline-кнопкам, и нажимая на любую, срабатывает только state, который выше(т.е. записывает номера в почту).
Причём он в callback_queryhandler получения номера попадает(выводит:"Пожалуйста, введите номер, начиная с 7 и не используя пробелы."), но дальше не идёт. Попробовал собрать их в один класс/развести по отдельным, но теперь ничего вообще не обрабатывается. Не судите строго, но в чём проблема? Часть кода прилагается.
@dp.callback_query_handler(text="Getemail")
async def state_email(call: types.CallbackQuery):
await call.message.answer("Пожалуйста, введите почту.", reply_markup=cancel_kb)
await waiting_for_email.set()
await call.answer()
@dp.message_handler(state=waiting_for_email)
async def get_email(message: types.Message, state: FSMContext):
regex = "^[a-zA-Z0-9@_.-]+$"
pattern = re.compile(regex)
if pattern.match(message.text) == False:
await message.answer("Почта указана неверно.")
return
cursor.execute(f"INSERT INTO Emails VALUES(\'{message.text}\', \'{message.from_user.full_name}\', \'{comp}\');")
conn.commit()
await message.answer("Спасибо! Бегу передавать ваши данные.", reply_markup=rtrn_kb)
await state.finish()
@dp.callback_query_handler(text="Getnumber")
async def state_number(call: types.CallbackQuery):
await call.message.answer("Пожалуйста, введите номер, начиная с 7 и не используя пробелы.", reply_markup=cancel_kb)
await waiting_for_number.set()
await call.answer()
@dp.message_handler(state=waiting_for_number)
async def get_number(message: types.Message, state: FSMContext):
if message.text.isdecimal() == False:
await message.answer("Номер указан неверно.")
return
cursor.execute(f"INSERT INTO Numbers VALUES({message.text}, \'{message.from_user.full_name}\', \'{comp}\');")
conn.commit()
await message.answer("Спасибо! Бегу передавать ваши данные.", reply_markup=rtrn_kb)
await state.finish()