mirror of
https://github.com/aiogram/aiogram.git
synced 2026-04-08 16:37:47 +00:00
cache skip actions
This commit is contained in:
parent
2c9e0fde56
commit
69eeaf2512
1 changed files with 15 additions and 7 deletions
|
|
@ -110,6 +110,19 @@ class LifetimeControllerMiddleware(BaseMiddleware):
|
|||
# TODO: Rename class
|
||||
|
||||
skip_patterns = None
|
||||
_skip_actions = None
|
||||
|
||||
@property
|
||||
def skip_actions(self):
|
||||
if self._skip_actions is None:
|
||||
self._skip_actions = []
|
||||
if self.skip_patterns:
|
||||
self._skip_actions.extend([
|
||||
f"pre_process_{item}",
|
||||
f"process_{item}",
|
||||
f"post_process_{item}",
|
||||
])
|
||||
return self._skip_actions
|
||||
|
||||
async def pre_process(self, obj, data, *args):
|
||||
pass
|
||||
|
|
@ -118,13 +131,8 @@ class LifetimeControllerMiddleware(BaseMiddleware):
|
|||
pass
|
||||
|
||||
async def trigger(self, action, args):
|
||||
if self.skip_patterns:
|
||||
skip_actions = (
|
||||
(f"pre_process_{item}", f"process_{item}", f"post_process_{item}")
|
||||
for item in self.skip_patterns
|
||||
)
|
||||
if any(action in item_actions for item_actions in skip_actions):
|
||||
return False
|
||||
if action in self.skip_actions:
|
||||
return False
|
||||
|
||||
obj, *args, data = args
|
||||
if action.startswith('pre_process_'):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue