mirror of
https://github.com/nonebot/nonebot2.git
synced 2025-02-22 18:45:26 +08:00
fix matcher decos
This commit is contained in:
parent
5871330492
commit
87a848d8c3
@ -109,14 +109,15 @@ class Matcher:
|
|||||||
def receive(cls) -> Callable[[Handler], Handler]:
|
def receive(cls) -> Callable[[Handler], Handler]:
|
||||||
"""接收一条新消息并处理"""
|
"""接收一条新消息并处理"""
|
||||||
|
|
||||||
def _decorator(func: Handler) -> Handler:
|
|
||||||
|
|
||||||
async def _handler(bot: Bot, event: Event, state: dict) -> NoReturn:
|
async def _handler(bot: Bot, event: Event, state: dict) -> NoReturn:
|
||||||
raise PausedException
|
raise PausedException
|
||||||
|
|
||||||
if cls.handlers:
|
if cls.handlers:
|
||||||
# 已有前置handlers则接受一条新的消息,否则视为接收初始消息
|
# 已有前置handlers则接受一条新的消息,否则视为接收初始消息
|
||||||
cls.handlers.append(_handler)
|
cls.handlers.append(_handler)
|
||||||
|
|
||||||
|
def _decorator(func: Handler) -> Handler:
|
||||||
|
if cls.handlers[-1] is not func:
|
||||||
cls.handlers.append(func)
|
cls.handlers.append(func)
|
||||||
|
|
||||||
return func
|
return func
|
||||||
@ -131,8 +132,6 @@ class Matcher:
|
|||||||
args_parser: Optional[ArgsParser] = None
|
args_parser: Optional[ArgsParser] = None
|
||||||
) -> Callable[[Handler], Handler]:
|
) -> Callable[[Handler], Handler]:
|
||||||
|
|
||||||
def _decorator(func: Handler) -> Handler:
|
|
||||||
|
|
||||||
async def _key_getter(bot: Bot, event: Event, state: dict):
|
async def _key_getter(bot: Bot, event: Event, state: dict):
|
||||||
if key not in state:
|
if key not in state:
|
||||||
state["_current_key"] = key
|
state["_current_key"] = key
|
||||||
@ -152,6 +151,9 @@ class Matcher:
|
|||||||
# 已有前置handlers则接受一条新的消息,否则视为接收初始消息
|
# 已有前置handlers则接受一条新的消息,否则视为接收初始消息
|
||||||
cls.handlers.append(_key_getter)
|
cls.handlers.append(_key_getter)
|
||||||
cls.handlers.append(_key_parser)
|
cls.handlers.append(_key_parser)
|
||||||
|
|
||||||
|
def _decorator(func: Handler) -> Handler:
|
||||||
|
if cls.handlers[-1] is not func:
|
||||||
cls.handlers.append(func)
|
cls.handlers.append(func)
|
||||||
|
|
||||||
return func
|
return func
|
||||||
|
Loading…
x
Reference in New Issue
Block a user