mirror of
https://github.com/aiogram/aiogram.git
synced 2026-04-08 16:37:47 +00:00
Add docs for Dispatcher
This commit is contained in:
parent
8ebbfb1388
commit
7245811c3c
197 changed files with 872 additions and 19 deletions
|
|
@ -8,6 +8,19 @@ from .handler import CallbackType, HandlerObject, HandlerType
|
|||
class EventObserver:
|
||||
"""
|
||||
Simple events observer
|
||||
|
||||
Is used for managing events is not related with Telegram (For example startup/shutdown processes)
|
||||
|
||||
Handlers can be registered via decorator or method
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
<observer>.register(my_handler)
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
@<observer>()
|
||||
async def my_handler(*args, **kwargs): ...
|
||||
"""
|
||||
|
||||
def __init__(self) -> None:
|
||||
|
|
|
|||
|
|
@ -18,6 +18,9 @@ if TYPE_CHECKING: # pragma: no cover
|
|||
class TelegramEventObserver:
|
||||
"""
|
||||
Event observer for Telegram events
|
||||
|
||||
Here you can register handler with filters or bounded filters which can be used as keyword arguments instead of writing full references when you register new handlers.
|
||||
This observer will stops event propagation when first handler is pass.
|
||||
"""
|
||||
|
||||
def __init__(self, router: Router, event_name: str) -> None:
|
||||
|
|
@ -153,10 +156,19 @@ class TelegramEventObserver:
|
|||
Decorator for registering inner middlewares
|
||||
|
||||
Usage:
|
||||
>>> @<event>.middleware() # via decorator (variant 1)
|
||||
>>> @<event>.middleware # via decorator (variant 2)
|
||||
>>> async def my_middleware(handler, event, data): ...
|
||||
>>> <event>.middleware(middleware) # via method
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
@<event>.middleware() # via decorator (variant 1)
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
@<event>.middleware # via decorator (variant 2)
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
async def my_middleware(handler, event, data): ...
|
||||
<event>.middleware(my_middleware) # via method
|
||||
"""
|
||||
|
||||
def wrapper(m: MiddlewareType) -> MiddlewareType:
|
||||
|
|
@ -174,10 +186,19 @@ class TelegramEventObserver:
|
|||
Decorator for registering outer middlewares
|
||||
|
||||
Usage:
|
||||
>>> @<event>.outer_middleware() # via decorator (variant 1)
|
||||
>>> @<event>.outer_middleware # via decorator (variant 2)
|
||||
>>> async def my_middleware(handler, event, data): ...
|
||||
>>> <event>.outer_middleware(my_middleware) # via method
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
@<event>.outer_middleware() # via decorator (variant 1)
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
@<event>.outer_middleware # via decorator (variant 2)
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
async def my_middleware(handler, event, data): ...
|
||||
<event>.outer_middleware(my_middleware) # via method
|
||||
"""
|
||||
|
||||
def wrapper(m: MiddlewareType) -> MiddlewareType:
|
||||
|
|
|
|||
|
|
@ -15,10 +15,22 @@ from .middlewares.error import ErrorsMiddleware
|
|||
|
||||
class Router:
|
||||
"""
|
||||
Events router
|
||||
Router can route update and it nested update types like messages, callback query, polls and all other event types.
|
||||
Here is used event-observer pattern.
|
||||
|
||||
Event handlers can be registered in observer by two ways:
|
||||
|
||||
- By observer method - :obj:`router.<event_type>.register(handler, <filters, ...>)`
|
||||
- By decorator - :obj:`@router.<event_type>(<filters, ...>)`
|
||||
|
||||
"""
|
||||
|
||||
def __init__(self, use_builtin_filters: bool = True) -> None:
|
||||
"""
|
||||
|
||||
:param use_builtin_filters: `aiogram` has many builtin filters and you can controll automatic registration of this filters in factory
|
||||
"""
|
||||
|
||||
self.use_builtin_filters = use_builtin_filters
|
||||
|
||||
self._parent_router: Optional[Router] = None
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue