简要翻译 Chattie,原文来自github,有删改。
Chattie是受Hubot启发的Python机器人框架。
安装命令:
pip3 install chattie
创建一个新的bot,运行:
chattie new my_bot_name
使用bot名称my_bot_name创建一个新目录,并生成一些文件来帮助入门。Chattie目前带有3个连接器:
pip3 install chattie[matrix]
pip3 install chattie[telegram]
支持添加技巧和处理程序 来构建自己的机器人。
Trick、handler是带有两个参数和一个**kwargs的函数。kwargs是一个数组,包含当前实例chattie.Bot和传入消息的文本,使用空格作为分割符,允许Connectors发送附加的元数据。
Tricks和handlers的功能并不是严格必需的,主要用于定制可选的机器人后端(backend)。可用的附加元数据的更多信息,请参见相应连接器的文档。下面是Trick的一个例子:
# If we recieve the message: "chattie my_new_trick some stuff"
def my_new_trick(bot, msg, **kwargs):
print(msg) # prints ['my_new_trick', 'some', 'stuff']
print(bot) # prints info about the currently running bot instance
return "" # responds to the chat room with whatever string is
# returned here
Trick使用完全相同的签名,但是他们可以选择返回None,不送任何内容给聊天室。这对于诸如审核日志记录或捕捉笑话之类的事情很有用
。
所有Trick都会自动添加到Chattie的help命令中。如果Trick具有docstring,它将包含在为用户优化过的帮助输出中。
因此,Chattie可以配置为必须将新trick分配给命令,方法是command在模块中命名一个全局变量,该变量 是Trick触发词的词典。对于上面的示例,它看起来像这样:
commands = {
'my_new_trick': my_new_trick
}
更方便的是,可以将多个命令分配给同一个trick:
commands = {
'my_new_trick': my_new_trick,
'new_trick': my_new_trick
}
Chattie初始化后会自动将其引入,并将其添加到已知命令中。
handler操作方式大致相同,但是由于handler没有触发词,因此您只需导出要在全局变量中注册的处理程序数组即可:
handlers = [
a_new_handler,
some_other_handler
]
Chattie将负责其余的工作。