mirror of
https://github.com/nonebot/nonebot2.git
synced 2024-11-28 03:15:24 +08:00
⚗️ add processor to ensure single matcher
This commit is contained in:
parent
f8304406c5
commit
2e75671d56
@ -5,16 +5,22 @@ from nonebot.matcher import Matcher
|
||||
from nonebot.adapters import Bot, Event
|
||||
from nonebot.message import run_preprocessor, run_postprocessor, IgnoredException
|
||||
|
||||
_running_matcher: Dict[str, bool] = {}
|
||||
_running_matcher: Dict[str, int] = {}
|
||||
|
||||
|
||||
@run_preprocessor
|
||||
async def _(matcher: Matcher, bot: Bot, event: Event, state: T_State):
|
||||
# TODO
|
||||
pass
|
||||
session_id = event.get_session_id()
|
||||
event_id = id(event)
|
||||
|
||||
if _running_matcher.get(session_id, None) != event_id:
|
||||
raise IgnoredException("Annother matcher running")
|
||||
|
||||
_running_matcher[session_id] = event_id
|
||||
|
||||
|
||||
@run_postprocessor
|
||||
async def _(matcher: Matcher, exception: Optional[Exception], bot: Bot, event: Event, state: T_State):
|
||||
# TODO
|
||||
pass
|
||||
session_id = event.get_session_id()
|
||||
if session_id in _running_matcher:
|
||||
del _running_matcher[session_id]
|
||||
|
Loading…
Reference in New Issue
Block a user