language.py 737 B

123456789101112131415161718192021222324
  1. from aiogram import BaseMiddleware
  2. from aiogram.types import Message
  3. from anonflow.services import UserService
  4. class LanguageMiddleware(BaseMiddleware):
  5. def __init__(self, user_service: UserService):
  6. super().__init__()
  7. self._user_service = user_service
  8. async def __call__(self, handler, event, data):
  9. data["user_language"] = None
  10. message = getattr(event, "message", None)
  11. if isinstance(message, Message) and message.from_user:
  12. user = await self._user_service.get(message.from_user.id)
  13. data["user_language"] = (
  14. user.language
  15. if user else message.from_user.language_code
  16. )
  17. return await handler(event, data)