Классовые обработчики
BaseHandler[T]
class BaseHandler(BaseHandlerMixin[T], ABC, Generic[T]):
def __init__(self, event: T, **kwargs: Any) -> None:
self.event: T = event
self.data: dict[str, Any] = kwargs
@property
def bot(self) -> Bot: ... # data["bot"]
@property
def update(self) -> Update: ... # data["event_update"]
@abstractmethod
async def handle(self) -> Any: ...
def __await__(self): ... # Позволяет await handler
MessageHandler
class MessageHandler(BaseHandler[Message], ABC):
@property
def from_user(self) -> User | None # message.sender
@property
def chat_id(self) -> int | None # message.recipient.chat_id
CallbackHandler
class CallbackHandler(BaseHandler[Callback], ABC):
@property
def from_user(self) -> User # callback.user
@property
def message(self) -> Message | None # callback.message
BotStartedHandler
class BotStartedHandler(BaseHandler[Update], ABC):
@property
def from_user(self) -> User | None # update.user
@property
def chat_id(self) -> int | None # update.chat_id
ErrorHandler
class ErrorHandler(BaseHandler[Exception], ABC):
@property
def exception_name(self) -> str # type(exception).__name__
@property
def exception_message(self) -> str # str(exception)
MessageHandlerCommandMixin
class MessageHandlerCommandMixin(BaseHandlerMixin[Message]):
@property
def command(self) -> CommandObject | None # data.get("command")
Исходные файлы
maxgram/handlers/base.py
maxgram/handlers/message.py
maxgram/handlers/callback.py
maxgram/handlers/bot_started.py
maxgram/handlers/error.py