mirror of
https://github.com/aiogram/aiogram.git
synced 2026-04-08 16:37:47 +00:00
Add methods to register filters and middlewares
This commit is contained in:
parent
21b4b64db1
commit
09a3eb3ea1
1 changed files with 34 additions and 1 deletions
|
|
@ -10,7 +10,8 @@ from aiohttp.helpers import sentinel
|
||||||
|
|
||||||
from aiogram.utils.deprecated import renamed_argument
|
from aiogram.utils.deprecated import renamed_argument
|
||||||
from .filters import Command, ContentTypeFilter, ExceptionsFilter, FiltersFactory, HashTag, Regexp, \
|
from .filters import Command, ContentTypeFilter, ExceptionsFilter, FiltersFactory, HashTag, Regexp, \
|
||||||
RegexpCommandsFilter, StateFilter, Text, IDFilter, AdminFilter, IsReplyFilter, ForwardedMessageFilter
|
RegexpCommandsFilter, StateFilter, Text, IDFilter, AdminFilter, IsReplyFilter, ForwardedMessageFilter, \
|
||||||
|
AbstractFilter
|
||||||
from .filters.builtin import IsSenderContact
|
from .filters.builtin import IsSenderContact
|
||||||
from .handler import Handler
|
from .handler import Handler
|
||||||
from .middlewares import MiddlewareManager
|
from .middlewares import MiddlewareManager
|
||||||
|
|
@ -1221,3 +1222,35 @@ class Dispatcher(DataMixin, ContextInstanceMixin):
|
||||||
return wrapped
|
return wrapped
|
||||||
|
|
||||||
return decorator
|
return decorator
|
||||||
|
|
||||||
|
def bind_filter(self, callback: typing.Union[typing.Callable, AbstractFilter],
|
||||||
|
validator: typing.Optional[typing.Callable] = None,
|
||||||
|
event_handlers: typing.Optional[typing.List[Handler]] = None,
|
||||||
|
exclude_event_handlers: typing.Optional[typing.Iterable[Handler]] = None):
|
||||||
|
"""
|
||||||
|
Register filter
|
||||||
|
|
||||||
|
:param callback: callable or subclass of :obj:`AbstractFilter`
|
||||||
|
:param validator: custom validator.
|
||||||
|
:param event_handlers: list of instances of :obj:`Handler`
|
||||||
|
:param exclude_event_handlers: list of excluded event handlers (:obj:`Handler`)
|
||||||
|
"""
|
||||||
|
self.filters_factory.bind(callback=callback, validator=validator, event_handlers=event_handlers,
|
||||||
|
exclude_event_handlers=exclude_event_handlers)
|
||||||
|
|
||||||
|
def unbind_filter(self, callback: typing.Union[typing.Callable, AbstractFilter]):
|
||||||
|
"""
|
||||||
|
Unregister callback
|
||||||
|
|
||||||
|
:param callback: callable of subclass of :obj:`AbstractFilter`
|
||||||
|
"""
|
||||||
|
self.filters_factory.unbind(callback=callback)
|
||||||
|
|
||||||
|
def setup_middleware(self, middleware):
|
||||||
|
"""
|
||||||
|
Setup middleware
|
||||||
|
|
||||||
|
:param middleware:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
self.middleware.setup(middleware)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue