mirror of
https://github.com/aiogram/aiogram.git
synced 2025-12-09 09:22:03 +00:00
Merge branch 'middlewares' into dev
This commit is contained in:
commit
21ecc50dbf
1 changed files with 24 additions and 0 deletions
24
aiogram/dispatcher/middlewares.py
Normal file
24
aiogram/dispatcher/middlewares.py
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
from . import Handler
|
||||
from .handler import SkipHandler
|
||||
|
||||
|
||||
class Middleware:
|
||||
def __init__(self, handler, filters=None):
|
||||
self.handler: Handler = handler
|
||||
self.configure_handler(filters)
|
||||
|
||||
def configure_handler(self, filters):
|
||||
if filters is None:
|
||||
filters = []
|
||||
self.handler.register(self._handle_event, filters, 0)
|
||||
|
||||
async def handle(self, *args, **kwargs):
|
||||
raise NotImplementedError
|
||||
|
||||
async def check_data(self, *args, **kwargs):
|
||||
return True
|
||||
|
||||
async def _handle_event(self, *args, **kwargs):
|
||||
if await self.check_data(*args, **kwargs):
|
||||
await self.handle(*args, **kwargs)
|
||||
raise SkipHandler()
|
||||
Loading…
Add table
Add a link
Reference in a new issue