7.2 KiB
NoneBot.matcher 模块
事件响应器
该模块实现事件响应器的创建与运行,并提供一些快捷方法来帮助用户更好的与机器人进行对话 。
matchers
-
类型
Dict[int, List[Type[Matcher]]]
-
说明
用于存储当前所有的事件响应器
class Matcher
基类:object
事件响应器类
plugin
-
类型
Optional[Plugin]
-
说明
事件响应器所在插件
module
-
类型
Optional[ModuleType]
-
说明
事件响应器所在插件模块
plugin_name
-
类型
Optional[str]
-
说明
事件响应器所在插件名
module_name
-
类型
Optional[str]
-
说明
事件响应器所在点分割插件模块路径
type
-
类型
str
-
说明
事件响应器类型
rule
-
类型
Rule
-
说明
事件响应器匹配规则
permission
-
类型
Permission
-
说明
事件响应器触发权限
priority
-
类型
int
-
说明
事件响应器优先级
block
-
类型
bool
-
说明
事件响应器是否阻止事件传播
temp
-
类型
bool
-
说明
事件响应器是否为临时
expire_time
-
类型
Optional[datetime]
-
说明
事件响应器过期时间点
_default_state
-
类型
T_State
-
说明
事件响应器默认状态
_default_state_factory
-
类型
Optional[T_State]
-
说明
事件响应器默认工厂函数
_default_parser
-
类型
Optional[T_ArgsParser]
-
说明
事件响应器默认参数解析函数
_default_type_updater
-
类型
Optional[T_TypeUpdater]
-
说明
事件响应器类型更新函数
_default_permission_updater
-
类型
Optional[T_PermissionUpdater]
-
说明
事件响应器权限更新函数
__init__()
实例化 Matcher 以便运行
handlers
-
类型
List[Handler]
-
说明
事件响应器拥有的事件处理函数列表
classmethod new(type_='', rule=None, permission=None, handlers=None, temp=False, priority=1, block=False, *, plugin=None, module=None, expire_time=None, default_state=None, default_state_factory=None, default_parser=None, default_type_updater=None, default_permission_updater=None)
-
说明
创建一个新的事件响应器,并存储至 matchers
-
参数
-
type_: str
: 事件响应器类型,与event.get_type()
一致时触发,空字符串表示任意 -
rule: Optional[Rule]
: 匹配规则 -
permission: Optional[Permission]
: 权限 -
handlers: Optional[List[T_Handler]]
: 事件处理函数列表 -
temp: bool
: 是否为临时事件响应器,即触发一次后删除 -
priority: int
: 响应优先级 -
block: bool
: 是否阻止事件向更低优先级的响应器传播 -
plugin: Optional[Plugin]
: 事件响应器所在插件 -
module: Optional[ModuleType]
: 事件响应器所在模块 -
default_state: Optional[T_State]
: 默认状态state
-
default_state_factory: Optional[T_StateFactory]
: 默认状态state
的工厂函数 -
expire_time: Optional[datetime]
: 事件响应器最终有效时间点,过时即被删除
-
-
返回
Type[Matcher]
: 新的事件响应器类
async classmethod check_perm(bot, event, stack=None, dependency_cache=None)
-
说明
检查是否满足触发权限
-
参数
-
bot: Bot
: Bot 对象 -
event: Event
: 上报事件
-
-
返回
bool
: 是否满足权限
async classmethod check_rule(bot, event, state, stack=None, dependency_cache=None)
-
说明
检查是否满足匹配规则
-
参数
-
bot: Bot
: Bot 对象 -
event: Event
: 上报事件 -
state: T_State
: 当前状态
-
-
返回
bool
: 是否满足匹配规则
classmethod args_parser(func)
-
说明
装饰一个函数来更改当前事件响应器的默认参数解析函数
-
参数
func: T_ArgsParser
: 参数解析函数
classmethod type_updater(func)
-
说明
装饰一个函数来更改当前事件响应器的默认响应事件类型更新函数
-
参数
func: T_TypeUpdater
: 响应事件类型更新函数
classmethod permission_updater(func)
-
说明
装饰一个函数来更改当前事件响应器的默认会话权限更新函数
-
参数
func: T_PermissionUpdater
: 会话权限更新函数
classmethod handle()
-
说明
装饰一个函数来向事件响应器直接添加一个处理函数
-
参数
- 无
classmethod receive()
-
说明
装饰一个函数来指示 NoneBot 在接收用户新的一条消息后继续运行该函数
-
参数
- 无
classmethod got(key, prompt=None, args_parser=None)
-
说明
装饰一个函数来指示 NoneBot 当要获取的
key
不存在时接收用户新的一条消息并经过ArgsParser
处理后再运行该函数,如果key
已存在则直接继续运行 -
参数
-
key: str
: 参数名 -
prompt: Optional[Union[str, Message, MessageSegment, MessageFormatter]]
: 在参数不存在时向用户发送的消息 -
args_parser: Optional[T_ArgsParser]
: 可选参数解析函数,空则使用默认解析函数
-
async classmethod send(message, **kwargs)
-
说明
发送一条消息给当前交互用户
-
参数
-
message: Union[str, Message, MessageSegment]
: 消息内容 -
**kwargs
: 其他传递给bot.send
的参数,请参考对应 adapter 的 bot 对象 api
-
async classmethod finish(message=None, **kwargs)
-
说明
发送一条消息给当前交互用户并结束当前事件响应器
-
参数
-
message: Union[str, Message, MessageSegment]
: 消息内容 -
**kwargs
: 其他传递给bot.send
的参数,请参考对应 adapter 的 bot 对象 api
-
async classmethod pause(prompt=None, **kwargs)
-
说明
发送一条消息给当前交互用户并暂停事件响应器,在接收用户新的一条消息后继续下一个处理函数
-
参数
-
prompt: Union[str, Message, MessageSegment]
: 消息内容 -
**kwargs
: 其他传递给bot.send
的参数,请参考对应 adapter 的 bot 对象 api
-
async classmethod reject(prompt=None, **kwargs)
-
说明
发送一条消息给当前交互用户并暂停事件响应器,在接收用户新的一条消息后重新运行当前处理函数
-
参数
-
prompt: Union[str, Message, MessageSegment]
: 消息内容 -
**kwargs
: 其他传递给bot.send
的参数,请参考对应 adapter 的 bot 对象 api
-
stop_propagation()
-
说明
阻止事件传播