async def get_gender(message: Message) -> None: gender = message.body if gender in ["male", "female"]: users_data[message.user_huid]["gender"] = gender await bot.answer_message( "Ok! Thanks for taking the time to answer my questions.", message, ) else: await bot.answer_message( "Sorry, but I can not recognize your answer! Type 'male' or 'female', please!", message, ) register_next_step_handler(message, get_gender)
async def fill_info(message: Message) -> None: if message.user_huid not in users_data: text = ( "Hi! I'm a bot that will ask some questions about you.\n" "First of all: what is your name?" ) register_next_step_handler(message, get_name) else: text = ( "You've already filled out information about yourself.\n" "You can view it by typing `/my-info` command.\n" "You can also view the processed information by typing `/info` command." ) await bot.answer_message(text, message)
async def get_age(message: Message) -> None: try: age = int(message.body) if age <= 2: await bot.answer_message( "Sorry, but it's not true. Say your real age, please!", message, ) register_next_step_handler(message, get_age) else: users_data[message.user_huid]["age"] = age await bot.answer_message("Got it! Final question: your gender?", message) register_next_step_handler(message, get_gender) except ValueError: await bot.answer_message( "No, no, no. Pleas tell me your age in numbers!", message, ) register_next_step_handler(message, get_age)
def decorator(message: Message): event.set() register_next_step_handler(message, next_handler_name, **ns_args)
def decorator(message: Message): event.set() if next_handler_name is not None: register_next_step_handler(message, next_handler_name)
async def get_name(message: Message) -> None: users_data[message.user_huid]["name"] = message.body await bot.answer_message("Good! Move next: how old are you?", message) register_next_step_handler(message, get_age)