melobot.bot¶
bot 类¶
- melobot.bot.thisbot: MeloBot = <melobot.bot.init.BotLocal object>¶
指向当前 bot 实例的全局变量,运行时使用。使用时当做 bot 实例(
MeloBot
对象)使用即可
- class melobot.bot.MeloBot[源代码]¶
bot 类。该类实例化即一个 bot 实例
- connector: AbstractConnector¶
bot 的连接器
- init(connector: AbstractConnector, enable_log: bool = True, logger_name: str | None = None, log_level: Literal['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'] = 'INFO', log_to_console: bool = True, log_to_dir: str | None = None, log_tag: bool = False, custom_logger: Any | None = None) MeloBot [源代码]¶
初始化 bot 实例
- 参数:
connector – 使 bot 实例工作的连接器
enable_log – 是否启用日志
logger_name – 日志器名称, 为空则使用 bot 实例名字
log_level – 日志器日志等级
log_to_console – 日志是否输出到控制台
log_to_dir – 保存日志文件的目录,为空则不保存
log_tag – 是否在日志中输出日志器名称,默认不输出
custom_logger – 自定义日志器对象。若不为空将使用该日志器,并忽略所有其他日志相关参数(日志器对象如果不是
BotLogger
类的实例,需要先通过logger_patch()
修补)
- 返回:
bot 实例(因此支持链式调用)
- load_plugin(target: str | BotPlugin) MeloBot [源代码]¶
为 bot 实例加载插件
- 参数:
target – 插件目标,可传入插件对象或插件包(一个插件即是一个 python package)的路径
- 返回:
bot 实例(因此支持链式调用)
- load_plugins(plugins_dir: str) MeloBot [源代码]¶
为 bot 实例批量加载插件
- 参数:
plugins_dir – 传入包含所有插件包(一个插件即是一个 python package)的目录
- 返回:
bot 实例(因此支持链式调用)
- get_plugins() dict[str, PluginProxy] [源代码]¶
获得 bot 实例所有插件的信息
- 返回:
所有插件的信息
- emit_signal(namespace: str, signal: str, *args: Any, wait: bool = False, **kwargs: Any) Any [源代码]¶
在本 bot 实例范围内发起一个信号
- 参数:
namespace – 触发信号的命名空间
signal – 触发信号的名字
wait – 是否等待信号处理方法处理完毕
args – 传递给信号处理方法的 args
kwargs – 传递给信号处理方法的 kwargs
- 返回:
不等待信号处理方法处理,只返回
None
;若等待则返回运行结果
获得 bot 实例内的共享对象
- 参数:
namespace – 共享对象的命名空间
id – 共享对象的标识 id
- 返回:
获得到的共享对象
- async classmethod unicast(target: str, namespace: str, signal: str, *args: Any, wait: bool = False, **kwargs: Any) None [源代码]¶
在指定的 bot 实例范围发起信号,即单播
- 参数:
target – 单播的目标 bot 实例的名字
namespace – 信号的命名空间
signal – 信号的名字
wait – 是否等待信号处理方法处理完毕
args – 传递给信号处理方法的 args
kwargs – 传递给信号处理方法的 kwargs
- async classmethod multicast(targets: list[str] | Literal['ALL'], namespace: str, signal: str, *args: Any, self_exclude: bool = True, wait: bool = False, **kwargs: Any) None [源代码]¶
在指定的多个 bot 实例范围发起信号,即多播
- 参数:
targets – 多个 bot 实例的名字列表,为 “ALL” 时代表向所有 bot 多播,即广播
namespace – 信号的命名空间
signal – 信号的名字
self_exclude – 是否在多播时排除自己
wait – 是否等待信号处理方法处理完毕
args – 传递给信号处理方法的 args
kwargs – 传递给信号处理方法的 kwargs