@dp.message_handler не реагирует на state
проблема следующая... у меня есть state ST_MAIN. я хочу во время этого состояния пересылать сообщение обратно юзеру (эхо бот)
однако бот не реагирует на мой хендлер. на хендлеры, которые ловят любые состояния, возвращает все как мне нужно. подскажите, пожалуйста, в чем может быть ошибка. спасибо
storage = RedisStorage2(db=0)
bot = Bot(token=TOKEN)
dp = Dispatcher(bot, storage=storage)
dp.middleware.setup(LoggingMiddleware())
@dp.message_handler(state='*', commands=['checkstate'])
async def process_checkstate_command(message: types.Message):
state = dp.current_state(user=message.from_user.id)
txt = MESSAGES['current_state'].format(
current_state=await state.get_state(),
states=States.all()
)
await message.reply(txt, reply=False)
@dp.message_handler(state='*', text=emojize('Back :back:'))
async def btn_back(message: types.Message):
state = dp.current_state(user=message.from_user.id)
await state.set_state(States.ST_MAIN)
await message.reply(MESSAGES['back'], reply_markup=kb.main_kb)
@dp.message_handler(state=States.ST_MAIN, content_types=ContentType.ANY)
async def unknown_message(msg: types.Message):
message_text = text(emojize('Я не знаю, что с этим делать :astonished:'),
italic('\nЯ просто напомню,'), 'что есть',
code('команда'), '/help')
await msg.reply(message_text, parse_mode=ParseMode.MARKDOWN)
async def shutdown(dispatcher: Dispatcher):
await dispatcher.storage.close()
await dispatcher.storage.wait_closed()
if __name__ == '__main__':
executor.start_polling(dp, on_shutdown=shutdown)
