🐛 fix type and permission updater

This commit is contained in:
yanyongyu 2021-03-12 16:28:56 +08:00
parent 782232fb1a
commit bb64c6fb71

View File

@ -108,12 +108,12 @@ class Matcher(metaclass=MatcherMeta):
""" """
_default_type_updater: Optional[T_TypeUpdater] = None _default_type_updater: Optional[T_TypeUpdater] = None
""" """
:类型: ``Optional[T_ArgsParser]`` :类型: ``Optional[T_TypeUpdater]``
:说明: 事件响应器类型更新函数 :说明: 事件响应器类型更新函数
""" """
_default_permission_updater: Optional[T_PermissionUpdater] = None _default_permission_updater: Optional[T_PermissionUpdater] = None
""" """
:类型: ``Optional[T_ArgsParser]`` :类型: ``Optional[T_PermissionUpdater]``
:说明: 事件响应器权限更新函数 :说明: 事件响应器权限更新函数
""" """
@ -587,16 +587,18 @@ class Matcher(metaclass=MatcherMeta):
except RejectedException: except RejectedException:
self.handlers.insert(0, handler) # type: ignore self.handlers.insert(0, handler) # type: ignore
if self._default_type_updater: updater = self.__class__._default_type_updater
type_ = await self._default_type_updater( if updater:
bot, event, state, self.type) type_ = await updater(bot, event, state, self.type)
else: else:
type_ = "message" type_ = "message"
if self._default_permission_updater:
permission = await self._default_permission_updater( updater = self.__class__._default_permission_updater
bot, event, state, self.permission) if updater:
permission = await updater(bot, event, state, self.permission)
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(type_,
Rule(), Rule(),
permission, permission,
@ -609,16 +611,18 @@ class Matcher(metaclass=MatcherMeta):
expire_time=datetime.now() + expire_time=datetime.now() +
bot.config.session_expire_timeout) bot.config.session_expire_timeout)
except PausedException: except PausedException:
if self._default_type_updater: updater = self.__class__._default_type_updater
type_ = await self._default_type_updater( if updater:
bot, event, state, self.type) type_ = await updater(bot, event, state, self.type)
else: else:
type_ = "message" type_ = "message"
if self._default_permission_updater:
permission = await self._default_permission_updater( updater = self.__class__._default_permission_updater
bot, event, state, self.permission) if updater:
permission = await updater(bot, event, state, self.permission)
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(type_,
Rule(), Rule(),
permission, permission,