diff --git a/nonebot/plugins/single_session.py b/nonebot/plugins/single_session.py index 3bed8ea1..d0e5b4a6 100644 --- a/nonebot/plugins/single_session.py +++ b/nonebot/plugins/single_session.py @@ -1,10 +1,8 @@ -from typing import Generator, Dict +from typing import Dict, Generator + from nonebot.adapters import Event -from nonebot.message import ( - IgnoredException, - event_preprocessor -) from nonebot.params import Depends +from nonebot.message import IgnoredException, event_preprocessor _running_matcher: Dict[str, int] = {} @@ -18,7 +16,7 @@ async def matcher_mutex(event: Event) -> Generator[bool, None, None]: else: current_event_id = id(event) event_id = _running_matcher.get(session_id, None) - if event_id : + if event_id: result = event_id != current_event_id else: _running_matcher[session_id] = current_event_id @@ -26,8 +24,8 @@ async def matcher_mutex(event: Event) -> Generator[bool, None, None]: if result: del _running_matcher[session_id] + @event_preprocessor async def preprocess(mutex: bool = Depends(matcher_mutex)): if mutex: raise IgnoredException("Another matcher running") -