aiogram, изменение текста сообщения в middleware

я пишу бота на aiogram 3.1.1 и python 3.11 Мне необходимо, чтобы текст всех пользователей для всех хэндлеров приходил в несколько отредактированном виде, допустим в нижнем регистре. Попробовал изменить текст используя middleware, но получаю ошибку " Instance is frozen". Можно ли единообразно изменять текст сообщений с помощью Middleware, чтобы не проводить лишние манипуляции для каждого хэндлера?

class SomeMiddleware(BaseMiddleware):
async def __call__(
    self,
    handler: Callable[[types.TelegramObject, Dict[str, Any]], Awaitable[Any]],
    event: types.TelegramObject,
    data: Dict[str, Any]
) -> Any:
    event.text = event.text.lower()
    result = await handler(event, data)
    return result

....

dp.message.middleware.register(SomeMiddleware())

Когда я писал бота на telebot, я мог создать подобный middleware_handler:

@BOT.middleware_handler(update_types=['message'])
def modify_message(bot_instance, message):
    message.text = message.text.lower()

Как использовать подобный прием на aiogram?


Ответы (0 шт):