# NoneBot.plugin 模块
# 插件
为 NoneBot 插件开发提供便携的定义函数。
# plugins
类型
Dict[str, Plugin]
说明
已加载的插件
# class Plugin
基类:object
存储插件信息
# name
类型:
str
说明: 插件名称,使用 文件/文件夹 名称作为插件名
# module
类型:
ModuleType
说明: 插件模块对象
# property export
类型:
Export
说明: 插件内定义的导出内容
# property matcher
类型:
Set[Type[Matcher]]
说明: 插件内定义的
Matcher
# on(type='', rule=None, permission=None, *, handlers=None, temp=False, priority=1, block=False, state=None, state_factory=None)
说明
注册一个基础事件响应器,可自定义类型。
参数
type: str
: 事件响应器类型rule: Optional[Union[Rule, T_RuleChecker]]
: 事件响应规则permission: Optional[Permission]
: 事件响应权限handlers: Optional[List[Union[T_Handler, Handler]]]
: 事件处理函数列表temp: bool
: 是否为临时事件响应器(仅执行一次)priority: int
: 事件响应器优先级block: bool
: 是否阻止事件向更低优先级传递state: Optional[T_State]
: 默认 statestate_factory: Optional[T_StateFactory]
: 默认 state 的工厂函数
返回
Type[Matcher]
# on_metaevent(rule=None, *, handlers=None, temp=False, priority=1, block=False, state=None, state_factory=None)
说明
注册一个元事件响应器。
参数
rule: Optional[Union[Rule, T_RuleChecker]]
: 事件响应规则handlers: Optional[List[Union[T_Handler, Handler]]]
: 事件处理函数列表temp: bool
: 是否为临时事件响应器(仅执行一次)priority: int
: 事件响应器优先级block: bool
: 是否阻止事件向更低优先级传递state: Optional[T_State]
: 默认 statestate_factory: Optional[T_StateFactory]
: 默认 state 的工厂函数
返回
Type[Matcher]
# on_message(rule=None, permission=None, *, handlers=None, temp=False, priority=1, block=True, state=None, state_factory=None)
说明
注册一个消息事件响应器。
参数
rule: Optional[Union[Rule, T_RuleChecker]]
: 事件响应规则permission: Optional[Permission]
: 事件响应权限handlers: Optional[List[Union[T_Handler, Handler]]]
: 事件处理函数列表temp: bool
: 是否为临时事件响应器(仅执行一次)priority: int
: 事件响应器优先级block: bool
: 是否阻止事件向更低优先级传递state: Optional[T_State]
: 默认 statestate_factory: Optional[T_StateFactory]
: 默认 state 的工厂函数
返回
Type[Matcher]
# on_notice(rule=None, *, handlers=None, temp=False, priority=1, block=False, state=None, state_factory=None)
说明
注册一个通知事件响应器。
参数
rule: Optional[Union[Rule, T_RuleChecker]]
: 事件响应规则handlers: Optional[List[Union[T_Handler, Handler]]]
: 事件处理函数列表temp: bool
: 是否为临时事件响应器(仅执行一次)priority: int
: 事件响应器优先级block: bool
: 是否阻止事件向更低优先级传递state: Optional[T_State]
: 默认 statestate_factory: Optional[T_StateFactory]
: 默认 state 的工厂函数
返回
Type[Matcher]
# on_request(rule=None, *, handlers=None, temp=False, priority=1, block=False, state=None, state_factory=None)
说明
注册一个请求事件响应器。
参数
rule: Optional[Union[Rule, T_RuleChecker]]
: 事件响应规则handlers: Optional[List[Union[T_Handler, Handler]]]
: 事件处理函数列表temp: bool
: 是否为临时事件响应器(仅执行一次)priority: int
: 事件响应器优先级block: bool
: 是否阻止事件向更低优先级传递state: Optional[T_State]
: 默认 statestate_factory: Optional[T_StateFactory]
: 默认 state 的工厂函数
返回
Type[Matcher]
# on_startswith(msg, rule=None, ignorecase=False, **kwargs)
说明
注册一个消息事件响应器,并且当消息的**文本部分**以指定内容开头时响应。
参数
msg: Union[str, Tuple[str, ...]]
: 指定消息开头内容rule: Optional[Union[Rule, T_RuleChecker]]
: 事件响应规则ignorecase: bool
: 是否忽略大小写permission: Optional[Permission]
: 事件响应权限handlers: Optional[List[Union[T_Handler, Handler]]]
: 事件处理函数列表temp: bool
: 是否为临时事件响应器(仅执行一次)priority: int
: 事件响应器优先级block: bool
: 是否阻止事件向更低优先级传递state: Optional[T_State]
: 默认 statestate_factory: Optional[T_StateFactory]
: 默认 state 的工厂函数
返回
Type[Matcher]
# on_endswith(msg, rule=None, ignorecase=False, **kwargs)
说明
注册一个消息事件响应器,并且当消息的**文本部分**以指定内容结尾时响应。
参数
msg: Union[str, Tuple[str, ...]]
: 指定消息结尾内容rule: Optional[Union[Rule, T_RuleChecker]]
: 事件响应规则ignorecase: bool
: 是否忽略大小写permission: Optional[Permission]
: 事件响应权限handlers: Optional[List[Union[T_Handler, Handler]]]
: 事件处理函数列表temp: bool
: 是否为临时事件响应器(仅执行一次)priority: int
: 事件响应器优先级block: bool
: 是否阻止事件向更低优先级传递state: Optional[T_State]
: 默认 statestate_factory: Optional[T_StateFactory]
: 默认 state 的工厂函数
返回
Type[Matcher]
# on_keyword(keywords, rule=None, **kwargs)
说明
注册一个消息事件响应器,并且当消息纯文本部分包含关键词时响应。
参数
keywords: Set[str]
: 关键词列表rule: Optional[Union[Rule, T_RuleChecker]]
: 事件响应规则permission: Optional[Permission]
: 事件响应权限handlers: Optional[List[Union[T_Handler, Handler]]]
: 事件处理函数列表temp: bool
: 是否为临时事件响应器(仅执行一次)priority: int
: 事件响应器优先级block: bool
: 是否阻止事件向更低优先级传递state: Optional[T_State]
: 默认 statestate_factory: Optional[T_StateFactory]
: 默认 state 的工厂函数
返回
Type[Matcher]
# on_command(cmd, rule=None, aliases=None, **kwargs)
说明
注册一个消息事件响应器,并且当消息以指定命令开头时响应。
命令匹配规则参考: 命令形式匹配
参数
cmd: Union[str, Tuple[str, ...]]
: 指定命令内容rule: Optional[Union[Rule, T_RuleChecker]]
: 事件响应规则aliases: Optional[Set[Union[str, Tuple[str, ...]]]]
: 命令别名permission: Optional[Permission]
: 事件响应权限handlers: Optional[List[Union[T_Handler, Handler]]]
: 事件处理函数列表temp: bool
: 是否为临时事件响应器(仅执行一次)priority: int
: 事件响应器优先级block: bool
: 是否阻止事件向更低优先级传递state: Optional[T_State]
: 默认 statestate_factory: Optional[T_StateFactory]
: 默认 state 的工厂函数
返回
Type[Matcher]
# on_shell_command(cmd, rule=None, aliases=None, parser=None, **kwargs)
说明
注册一个支持
shell_like
解析参数的命令消息事件响应器。与普通的
on_command
不同的是,在添加parser
参数时, 响应器会自动处理消息。并将用户输入的原始参数列表保存在
state["argv"]
,parser
处理的参数保存在state["args"]
中参数
cmd: Union[str, Tuple[str, ...]]
: 指定命令内容rule: Optional[Union[Rule, T_RuleChecker]]
: 事件响应规则aliases: Optional[Set[Union[str, Tuple[str, ...]]]]
: 命令别名parser: Optional[ArgumentParser]
:nonebot.rule.ArgumentParser
对象permission: Optional[Permission]
: 事件响应权限handlers: Optional[List[Union[T_Handler, Handler]]]
: 事件处理函数列表temp: bool
: 是否为临时事件响应器(仅执行一次)priority: int
: 事件响应器优先级block: bool
: 是否阻止事件向更低优先级传递state: Optional[T_State]
: 默认 statestate_factory: Optional[T_StateFactory]
: 默认 state 的工厂函数
返回
Type[Matcher]
# on_regex(pattern, flags=0, rule=None, **kwargs)
说明
注册一个消息事件响应器,并且当消息匹配正则表达式时响应。
命令匹配规则参考: 正则匹配
参数
pattern: str
: 正则表达式flags: Union[int, re.RegexFlag]
: 正则匹配标志rule: Optional[Union[Rule, T_RuleChecker]]
: 事件响应规则permission: Optional[Permission]
: 事件响应权限handlers: Optional[List[Union[T_Handler, Handler]]]
: 事件处理函数列表temp: bool
: 是否为临时事件响应器(仅执行一次)priority: int
: 事件响应器优先级block: bool
: 是否阻止事件向更低优先级传递state: Optional[T_State]
: 默认 statestate_factory: Optional[T_StateFactory]
: 默认 state 的工厂函数
返回
Type[Matcher]
# class CommandGroup
基类:object
命令组,用于声明一组有相同名称前缀的命令。
# __init__(cmd, **kwargs)
参数
cmd: Union[str, Tuple[str, ...]]
: 命令前缀**kwargs
: 其他传递给on_command
的参数默认值,参考 on_command
# basecmd
类型:
Tuple[str, ...]
说明: 命令前缀
# base_kwargs
类型:
Dict[str, Any]
说明: 其他传递给
on_command
的参数默认值
# command(cmd, **kwargs)
说明
注册一个新的命令。
参数
cmd: Union[str, Tuple[str, ...]]
: 命令前缀**kwargs
: 其他传递给on_command
的参数,将会覆盖命令组默认值
返回
Type[Matcher]
# shell_command(cmd, **kwargs)
说明
注册一个新的命令。
参数
cmd: Union[str, Tuple[str, ...]]
: 命令前缀**kwargs
: 其他传递给on_shell_command
的参数,将会覆盖命令组默认值
返回
Type[Matcher]
# class MatcherGroup
基类:object
事件响应器组合,统一管理。为 Matcher
创建提供默认属性。
# __init__(**kwargs)
说明
创建一个事件响应器组合,参数为默认值,与
on
一致
# matchers
类型
List[Type[Matcher]]
说明
组内事件响应器列表
# base_kwargs
类型:
Dict[str, Any]
说明: 其他传递给
on
的参数默认值
# on(**kwargs)
说明
注册一个基础事件响应器,可自定义类型。
参数
type: str
: 事件响应器类型rule: Optional[Union[Rule, T_RuleChecker]]
: 事件响应规则permission: Optional[Permission]
: 事件响应权限handlers: Optional[List[Union[T_Handler, Handler]]]
: 事件处理函数列表temp: bool
: 是否为临时事件响应器(仅执行一次)priority: int
: 事件响应器优先级block: bool
: 是否阻止事件向更低优先级传递state: Optional[T_State]
: 默认 statestate_factory: Optional[T_StateFactory]
: 默认 state 的工厂函数
返回
Type[Matcher]
# on_metaevent(**kwargs)
说明
注册一个元事件响应器。
参数
rule: Optional[Union[Rule, T_RuleChecker]]
: 事件响应规则handlers: Optional[List[Union[T_Handler, Handler]]]
: 事件处理函数列表temp: bool
: 是否为临时事件响应器(仅执行一次)priority: int
: 事件响应器优先级block: bool
: 是否阻止事件向更低优先级传递state: Optional[T_State]
: 默认 statestate_factory: Optional[T_StateFactory]
: 默认 state 的工厂函数
返回
Type[Matcher]
# on_message(**kwargs)
说明
注册一个消息事件响应器。
参数
rule: Optional[Union[Rule, T_RuleChecker]]
: 事件响应规则permission: Optional[Permission]
: 事件响应权限handlers: Optional[List[Union[T_Handler, Handler]]]
: 事件处理函数列表temp: bool
: 是否为临时事件响应器(仅执行一次)priority: int
: 事件响应器优先级block: bool
: 是否阻止事件向更低优先级传递state: Optional[T_State]
: 默认 statestate_factory: Optional[T_StateFactory]
: 默认 state 的工厂函数
返回
Type[Matcher]
# on_notice(**kwargs)
说明
注册一个通知事件响应器。
参数
rule: Optional[Union[Rule, T_RuleChecker]]
: 事件响应规则handlers: Optional[List[Union[T_Handler, Handler]]]
: 事件处理函数列表temp: bool
: 是否为临时事件响应器(仅执行一次)priority: int
: 事件响应器优先级block: bool
: 是否阻止事件向更低优先级传递state: Optional[T_State]
: 默认 statestate_factory: Optional[T_StateFactory]
: 默认 state 的工厂函数
返回
Type[Matcher]
# on_request(**kwargs)
说明
注册一个请求事件响应器。
参数
rule: Optional[Union[Rule, T_RuleChecker]]
: 事件响应规则handlers: Optional[List[Union[T_Handler, Handler]]]
: 事件处理函数列表temp: bool
: 是否为临时事件响应器(仅执行一次)priority: int
: 事件响应器优先级block: bool
: 是否阻止事件向更低优先级传递state: Optional[T_State]
: 默认 statestate_factory: Optional[T_StateFactory]
: 默认 state 的工厂函数
返回
Type[Matcher]
# on_startswith(msg, **kwargs)
说明
注册一个消息事件响应器,并且当消息的**文本部分**以指定内容开头时响应。
参数
msg: Union[str, Tuple[str, ...]]
: 指定消息开头内容ignorecase: bool
: 是否忽略大小写rule: Optional[Union[Rule, T_RuleChecker]]
: 事件响应规则permission: Optional[Permission]
: 事件响应权限handlers: Optional[List[Union[T_Handler, Handler]]]
: 事件处理函数列表temp: bool
: 是否为临时事件响应器(仅执行一次)priority: int
: 事件响应器优先级block: bool
: 是否阻止事件向更低优先级传递state: Optional[T_State]
: 默认 statestate_factory: Optional[T_StateFactory]
: 默认 state 的工厂函数
返回
Type[Matcher]
# on_endswith(msg, **kwargs)
说明
注册一个消息事件响应器,并且当消息的**文本部分**以指定内容结尾时响应。
参数
msg: Union[str, Tuple[str, ...]]
: 指定消息结尾内容ignorecase: bool
: 是否忽略大小写rule: Optional[Union[Rule, T_RuleChecker]]
: 事件响应规则permission: Optional[Permission]
: 事件响应权限handlers: Optional[List[Union[T_Handler, Handler]]]
: 事件处理函数列表temp: bool
: 是否为临时事件响应器(仅执行一次)priority: int
: 事件响应器优先级block: bool
: 是否阻止事件向更低优先级传递state: Optional[T_State]
: 默认 statestate_factory: Optional[T_StateFactory]
: 默认 state 的工厂函数
返回
Type[Matcher]
# on_keyword(keywords, **kwargs)
说明
注册一个消息事件响应器,并且当消息纯文本部分包含关键词时响应。
参数
keywords: Set[str]
: 关键词列表rule: Optional[Union[Rule, T_RuleChecker]]
: 事件响应规则permission: Optional[Permission]
: 事件响应权限handlers: Optional[List[Union[T_Handler, Handler]]]
: 事件处理函数列表temp: bool
: 是否为临时事件响应器(仅执行一次)priority: int
: 事件响应器优先级block: bool
: 是否阻止事件向更低优先级传递state: Optional[T_State]
: 默认 statestate_factory: Optional[T_StateFactory]
: 默认 state 的工厂函数
返回
Type[Matcher]
# on_command(cmd, aliases=None, **kwargs)
说明
注册一个消息事件响应器,并且当消息以指定命令开头时响应。
命令匹配规则参考: 命令形式匹配
参数
cmd: Union[str, Tuple[str, ...]]
: 指定命令内容aliases: Optional[Set[Union[str, Tuple[str, ...]]]]
: 命令别名rule: Optional[Union[Rule, T_RuleChecker]]
: 事件响应规则permission: Optional[Permission]
: 事件响应权限handlers: Optional[List[Union[T_Handler, Handler]]]
: 事件处理函数列表temp: bool
: 是否为临时事件响应器(仅执行一次)priority: int
: 事件响应器优先级block: bool
: 是否阻止事件向更低优先级传递state: Optional[T_State]
: 默认 statestate_factory: Optional[T_StateFactory]
: 默认 state 的工厂函数
返回
Type[Matcher]
# on_shell_command(cmd, aliases=None, parser=None, **kwargs)
说明
注册一个支持
shell_like
解析参数的命令消息事件响应器。与普通的
on_command
不同的是,在添加parser
参数时, 响应器会自动处理消息。并将用户输入的原始参数列表保存在
state["argv"]
,parser
处理的参数保存在state["args"]
中参数
cmd: Union[str, Tuple[str, ...]]
: 指定命令内容aliases: Optional[Set[Union[str, Tuple[str, ...]]]]
: 命令别名parser: Optional[ArgumentParser]
:nonebot.rule.ArgumentParser
对象rule: Optional[Union[Rule, T_RuleChecker]]
: 事件响应规则permission: Optional[Permission]
: 事件响应权限handlers: Optional[List[Union[T_Handler, Handler]]]
: 事件处理函数列表temp: bool
: 是否为临时事件响应器(仅执行一次)priority: int
: 事件响应器优先级block: bool
: 是否阻止事件向更低优先级传递state: Optional[T_State]
: 默认 statestate_factory: Optional[T_StateFactory]
: 默认 state 的工厂函数
返回
Type[Matcher]
# on_regex(pattern, flags=0, **kwargs)
说明
注册一个消息事件响应器,并且当消息匹配正则表达式时响应。
命令匹配规则参考: 正则匹配
参数
pattern: str
: 正则表达式flags: Union[int, re.RegexFlag]
: 正则匹配标志rule: Optional[Union[Rule, T_RuleChecker]]
: 事件响应规则permission: Optional[Permission]
: 事件响应权限handlers: Optional[List[Union[T_Handler, Handler]]]
: 事件处理函数列表temp: bool
: 是否为临时事件响应器(仅执行一次)priority: int
: 事件响应器优先级block: bool
: 是否阻止事件向更低优先级传递state: Optional[T_State]
: 默认 statestate_factory: Optional[T_StateFactory]
: 默认 state 的工厂函数
返回
Type[Matcher]
# load_plugin(module_path)
说明
使用
PluginManager
加载单个插件,可以是本地插件或是通过pip
安装的插件。参数
module_path: str
: 插件名称path.to.your.plugin
返回
Optional[Plugin]
# load_plugins(*plugin_dir)
说明
导入目录下多个插件,以
_
开头的插件不会被导入!参数
*plugin_dir: str
: 插件路径
返回
Set[Plugin]
# load_all_plugins(module_path, plugin_dir)
说明
导入指定列表中的插件以及指定目录下多个插件,以
_
开头的插件不会被导入!参数
module_path: Set[str]
: 指定插件集合plugin_dir: Set[str]
: 指定插件路径集合
返回
Set[Plugin]
# load_from_json(file_path, encoding='utf-8')
说明
导入指定 json 文件中的
plugins
以及plugin_dirs
下多个插件,以_
开头的插件不会被导入!参数
file_path: str
: 指定 json 文件路径encoding: str
: 指定 json 文件编码
返回
Set[Plugin]
# load_from_toml(file_path, encoding='utf-8')
说明
导入指定 toml 文件
[nonebot.plugins]
中的plugins
以及plugin_dirs
下多个插件, 以_
开头的插件不会被导入!参数
file_path: str
: 指定 toml 文件路径encoding: str
: 指定 toml 文件编码
返回
Set[Plugin]
# load_builtin_plugins(name='echo')
说明
导入 NoneBot 内置插件
返回
Plugin
# get_plugin(name)
说明
获取当前导入的某个插件。
参数
name: str
: 插件名,与load_plugin
参数一致。如果为load_plugins
导入的插件,则为文件(夹)名。
返回
Optional[Plugin]
# get_loaded_plugins()
说明
获取当前已导入的所有插件。
返回
Set[Plugin]
# require(name)
说明
获取一个插件的导出内容
参数
name: str
: 插件名,与load_plugin
参数一致。如果为load_plugins
导入的插件,则为文件(夹)名。
返回
Optional[Export]
# class Export
基类:dict
说明
插件导出内容以使得其他插件可以获得。
示例
nonebot.export().default = "bar"
@nonebot.export()
def some_function():
pass
# this doesn't work before python 3.9
# use
# export = nonebot.export(); @export.sub
# instead
# See also PEP-614: https://www.python.org/dev/peps/pep-0614/
@nonebot.export().sub
def something_else():
pass
2
3
4
5
6
7
8
9
10
11
12
13
14
# export()
说明
获取插件的导出内容对象
返回
Export