Как обозначить цифры в aiogram
@dp.message_handler(text=(int), state=FSMAdmin.krasava1)
async def cm_start(message : types.Message, state: FSMContext):
await message.reply('Твоя батарейка заряжена на 20%')
await FSMAdmin.next()
Есть такой хэндлэр. Здесь надо указать чтобы он реагировал на цифру text=(int)#неправильно Как это сделать?
Ответы (1 шт):
Автор решения: Dmitry Vasiliev
→ Ссылка
При использовании FSM можно валидировать входные параметры. Пример:
# Check age. Age gotta be digit
@dp.message_handler(lambda message: not message.text.isdigit(), state=Form.age)
async def process_age_invalid(message: types.Message):
"""
If age is invalid
"""
return await message.reply("Age gotta be a number.\nHow old are you? (digits only)")
@dp.message_handler(lambda message: message.text.isdigit(), state=Form.age)
async def process_age(message: types.Message, state: FSMContext):
# Update state and data
await Form.next()
await state.update_data(age=int(message.text))
# Configure ReplyKeyboardMarkup
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, selective=True)
markup.add("Male", "Female")
markup.add("Other")
await message.reply("What is your gender?", reply_markup=markup)