mirror of
https://github.com/aiogram/aiogram.git
synced 2025-12-11 09:55:21 +00:00
Provide middlewares.
This commit is contained in:
parent
1413baf4b8
commit
334f23e0e5
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 aiogram.dispatcher import Handler
|
||||||
|
from aiogram.dispatcher.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