not_registered.py 991 B

123456789101112131415161718192021222324252627
  1. from aiogram import BaseMiddleware
  2. from aiogram.enums import ChatType
  3. from aiogram.types import Message
  4. from anonflow.bot.transport.types import RequestContext
  5. from anonflow.interfaces import UserResponsesPort
  6. class UserNotRegisteredMiddleware(BaseMiddleware):
  7. def __init__(self, responses_port: UserResponsesPort):
  8. super().__init__()
  9. self._responses_port = responses_port
  10. async def __call__(self, handler, event, data):
  11. message = getattr(event, "message", None)
  12. if isinstance(message, Message) and message.chat.type == ChatType.PRIVATE:
  13. text = message.text or message.caption or ""
  14. is_user_exists = data.get("user") is not None
  15. if not is_user_exists and not text.startswith("/start"):
  16. await self._responses_port.user_not_registered(
  17. RequestContext(message.chat.id, data["user_language"])
  18. )
  19. return
  20. return await handler(event, data)