diff --git a/aiogram/dispatcher/middlewares.py b/aiogram/dispatcher/middlewares.py index 5fa09830fa..cbe552208e 100644 --- a/aiogram/dispatcher/middlewares.py +++ b/aiogram/dispatcher/middlewares.py @@ -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,7 +131,7 @@ async def post_process(self, obj, data, *args): pass async def trigger(self, action, args): - if self.skip_patterns is not None and any(item in action for item in self.skip_patterns): + if action in self.skip_actions: return False obj, *args, data = args