# NoneBot.matcher 模块
# 事件响应器
该模块实现事件响应器的创建与运行,并提供一些快捷方法来帮助用户更好的与机器人进行对话 。
# matchers
类型
Dict[int, List[Type[Matcher]]]
说明
用于存储当前所有的事件响应器
# class Matcher
基类:object
事件响应器类
# module
类型
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, *, module=None, default_state=None, default_state_factory=None, expire_time=None)
说明
创建一个新的事件响应器,并存储至 matchers
参数
type_: str
: 事件响应器类型,与event.get_type()
一致时触发,空字符串表示任意rule: Optional[Rule]
: 匹配规则permission: Optional[Permission]
: 权限handlers: Optional[List[T_Handler]]
: 事件处理函数列表temp: bool
: 是否为临时事件响应器,即触发一次后删除priority: int
: 响应优先级block: bool
: 是否阻止事件向更低优先级的响应器传播module: Optional[str]
: 事件响应器所在模块名称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)
说明
检查是否满足触发权限
参数
bot: Bot
: Bot 对象event: Event
: 上报事件
返回
bool
: 是否满足权限
# async classmethod check_rule(bot, event, state)
说明
检查是否满足匹配规则
参数
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]]
: 在参数不存在时向用户发送的消息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()
说明
阻止事件传播