🔀 Merge pull request #309

Fix: matcher got  recursion
This commit is contained in:
Ju4tCode 2021-04-01 07:09:08 -05:00 committed by GitHub
commit 6b763e20d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -418,6 +418,7 @@ class Matcher(metaclass=MatcherMeta):
def _decorator(func: T_Handler) -> T_Handler: def _decorator(func: T_Handler) -> T_Handler:
if not hasattr(cls.handlers[-1], "__wrapped__"): if not hasattr(cls.handlers[-1], "__wrapped__"):
parser = cls.handlers.pop() parser = cls.handlers.pop()
func_handler = Handler(func)
@wraps(func) @wraps(func)
async def wrapper(bot: "Bot", event: "Event", state: T_State, async def wrapper(bot: "Bot", event: "Event", state: T_State,
@ -427,12 +428,14 @@ class Matcher(metaclass=MatcherMeta):
if "_current_key" in state: if "_current_key" in state:
del state["_current_key"] del state["_current_key"]
func_handler = cls.append_handler(wrapper) wrapper_handler = cls.append_handler(wrapper)
getter_handler.update_signature(bot=func_handler.bot_type, getter_handler.update_signature(
event=func_handler.event_type) bot=wrapper_handler.bot_type,
parser_handler.update_signature(bot=func_handler.bot_type, event=wrapper_handler.event_type)
event=func_handler.event_type) parser_handler.update_signature(
bot=wrapper_handler.bot_type,
event=wrapper_handler.event_type)
return func return func