Проблема в коде aiogram

Рейтинг: 0Ответов: 1Опубликовано: 19.06.2023
available_pos_names = ["1pos", "2pos", "3pos", "4pos", "5pos"]
available_comp_names = ['легко', 'средне', 'сложно']
    
class Orderhero(StatesGroup):
    waiting_for_pos_name = State()
    waiting_for_comp_name = State()
    
    @dp.message_handler(commands=['random_heroUP'])
    async def hero_start(message: types.Message, state: FSMContext):
        keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
        for name in available_pos_names:
            keyboard.add(name)
        await message.answer("Выберите позицию", reply_markup=keyboard)
        await state.set_state(Orderhero.waiting_for_pos_name.state)

в этом месте перестает работать. дальше код не идет

async def hero_chosen(message: types.Message, state: FSMContext):
    if message.text.lower() not in available_pos_names:
        await message.answer("выберите позицию используя клавиатуру")
        return
    await state.update_data(chosen_hero=message.text.lower())

    keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
    for name in available_comp_names:
        keyboard.add(name)
    await state.set_state(Orderhero.waiting_for_comp_name.state)
    await message.answer("Выберите сложность", reply_markup=keyboard)

это отрывок кода. Не могу понять что не так. Запускаю тг бота, пишу команду, бот предлагает выбрать позицию, я нажимаю и все, дальше бот не действует, никакой ошибки не выдает. Все импорты есть может я чего то не замечаю.... Помогите пожалуйста

Ответы

▲ 0

Если функция является частью FSM, это надо сообщить в хэндлере

@dp.message_handler(state=Orderhero.waiting_for_pos_name.state, content_types=['тут тип контента(текст,медиа и пр.) который тебе нужен'])

впиши эту строчку перед функцией hero_chosen