mirror of
https://github.com/aiogram/aiogram.git
synced 2025-12-11 01:54:53 +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