mirror of
https://github.com/nonebot/nonebot2.git
synced 2025-02-25 11:59:53 +08:00
🐛 fix missing update when reject or pause (fix #394)
This commit is contained in:
parent
57cf8e9bd8
commit
45e1126f37
@ -166,20 +166,25 @@ class Matcher(metaclass=MatcherMeta):
|
|||||||
return repr(self)
|
return repr(self)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def new(cls,
|
def new(
|
||||||
type_: str = "",
|
cls,
|
||||||
rule: Optional[Rule] = None,
|
type_: str = "",
|
||||||
permission: Optional[Permission] = None,
|
rule: Optional[Rule] = None,
|
||||||
handlers: Optional[Union[List[T_Handler], List[Handler],
|
permission: Optional[Permission] = None,
|
||||||
List[Union[T_Handler, Handler]]]] = None,
|
handlers: Optional[Union[List[T_Handler], List[Handler],
|
||||||
temp: bool = False,
|
List[Union[T_Handler, Handler]]]] = None,
|
||||||
priority: int = 1,
|
temp: bool = False,
|
||||||
block: bool = False,
|
priority: int = 1,
|
||||||
*,
|
block: bool = False,
|
||||||
module: Optional[ModuleType] = None,
|
*,
|
||||||
default_state: Optional[T_State] = None,
|
module: Optional[ModuleType] = None,
|
||||||
default_state_factory: Optional[T_StateFactory] = None,
|
expire_time: Optional[datetime] = None,
|
||||||
expire_time: Optional[datetime] = None) -> Type["Matcher"]:
|
default_state: Optional[T_State] = None,
|
||||||
|
default_state_factory: Optional[T_StateFactory] = None,
|
||||||
|
default_parser: Optional[T_ArgsParser] = None,
|
||||||
|
default_type_updater: Optional[T_TypeUpdater] = None,
|
||||||
|
default_permission_updater: Optional[T_PermissionUpdater] = None
|
||||||
|
) -> Type["Matcher"]:
|
||||||
"""
|
"""
|
||||||
:说明:
|
:说明:
|
||||||
|
|
||||||
@ -237,7 +242,13 @@ class Matcher(metaclass=MatcherMeta):
|
|||||||
default_state or {},
|
default_state or {},
|
||||||
"_default_state_factory":
|
"_default_state_factory":
|
||||||
staticmethod(default_state_factory)
|
staticmethod(default_state_factory)
|
||||||
if default_state_factory else None
|
if default_state_factory else None,
|
||||||
|
"_default_parser":
|
||||||
|
default_parser,
|
||||||
|
"_default_type_updater":
|
||||||
|
default_type_updater,
|
||||||
|
"_default_permission_updater":
|
||||||
|
default_permission_updater
|
||||||
})
|
})
|
||||||
|
|
||||||
matchers[priority].append(NewMatcher)
|
matchers[priority].append(NewMatcher)
|
||||||
@ -586,17 +597,21 @@ class Matcher(metaclass=MatcherMeta):
|
|||||||
else:
|
else:
|
||||||
permission = USER(event.get_session_id(), perm=self.permission)
|
permission = USER(event.get_session_id(), perm=self.permission)
|
||||||
|
|
||||||
Matcher.new(type_,
|
Matcher.new(
|
||||||
Rule(),
|
type_,
|
||||||
permission,
|
Rule(),
|
||||||
self.handlers,
|
permission,
|
||||||
temp=True,
|
self.handlers,
|
||||||
priority=0,
|
temp=True,
|
||||||
block=True,
|
priority=0,
|
||||||
module=self.module,
|
block=True,
|
||||||
default_state=self.state,
|
module=self.module,
|
||||||
expire_time=datetime.now() +
|
expire_time=datetime.now() + bot.config.session_expire_timeout,
|
||||||
bot.config.session_expire_timeout)
|
default_state=self.state,
|
||||||
|
default_parser=self.__class__._default_parser,
|
||||||
|
default_type_updater=self.__class__._default_type_updater,
|
||||||
|
default_permission_updater=self.__class__.
|
||||||
|
_default_permission_updater)
|
||||||
except PausedException:
|
except PausedException:
|
||||||
updater = self.__class__._default_type_updater
|
updater = self.__class__._default_type_updater
|
||||||
if updater:
|
if updater:
|
||||||
@ -610,17 +625,21 @@ class Matcher(metaclass=MatcherMeta):
|
|||||||
else:
|
else:
|
||||||
permission = USER(event.get_session_id(), perm=self.permission)
|
permission = USER(event.get_session_id(), perm=self.permission)
|
||||||
|
|
||||||
Matcher.new(type_,
|
Matcher.new(
|
||||||
Rule(),
|
type_,
|
||||||
permission,
|
Rule(),
|
||||||
self.handlers,
|
permission,
|
||||||
temp=True,
|
self.handlers,
|
||||||
priority=0,
|
temp=True,
|
||||||
block=True,
|
priority=0,
|
||||||
module=self.module,
|
block=True,
|
||||||
default_state=self.state,
|
module=self.module,
|
||||||
expire_time=datetime.now() +
|
expire_time=datetime.now() + bot.config.session_expire_timeout,
|
||||||
bot.config.session_expire_timeout)
|
default_state=self.state,
|
||||||
|
default_parser=self.__class__._default_parser,
|
||||||
|
default_type_updater=self.__class__._default_type_updater,
|
||||||
|
default_permission_updater=self.__class__.
|
||||||
|
_default_permission_updater)
|
||||||
except FinishedException:
|
except FinishedException:
|
||||||
pass
|
pass
|
||||||
except StopPropagation:
|
except StopPropagation:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user