как после захвата сообщения переменной отключить хендлер
@router.message()
async def reg_step1(message: Message):
async with (lock):
name = message.text
await message.answer(f"Приятно познакомиться, {name}. Подскажи, хочется сразу перейти к урокам или посмотреть бесплатный урок «Управление первым впечатлением»?",
reply_markup=kb)
надо чтобы после выполнения этой функции она больше не реагировала. Помогите, как это сделать?
Ответы (1 шт):
Автор решения: max best
→ Ссылка
Как вариант использовать FSM. Присвойте состояние, когда ожидаете имя от пользователя, после очистите.
class reg_states(StatesGroup):
reg = State()
@router.message(CommandStart())
async def command_start_handler(message: Message, state: FSMContext):
await message.answer("Добрый день, напишите Ваше имя")
await state.set_state(reg_states.reg)
@router.message(reg_states.reg)
async def reg_step1(message: Message, state: FSMContext):
async with (lock):
name = message.text
await message.answer(f"Приятно познакомиться, {name}. Подскажи, хочется сразу перейти к урокам или посмотреть бесплатный урок «Управление первым впечатлением»?",
reply_markup=kb)
await state.clear()
Если правильно конечно понял, что это код регистрации или чего-то подобного. В блоке с стартовым хендлером пропишите проверку на уже зарегистрированных пользователей.