Errbot
Errbot是一个聊天机器人。它允许你从聊天室以交互方式启动脚本,原因包括:随机幽默、聊天、启动构建、监控提交、触发警报。。。
它是用Python编写的,易于扩展。
Errbot作为open-source软件提供,并在gplv3许可下发布。
Features
聊天服务器支持
Built-in
- IRC support
- Hipchat support
- Slack support
- Telegram support
- XMPP support
With add-ons
- 营火(见说明)
- Cisco Spark(请参阅说明)
- 不和谐(见说明)
- Gitter支持(参见说明)
- 矩阵(见说明)
- 最重要(见说明)
- RocketChat(见说明)
- Skype(请参阅说明)
- 毒物(见说明)
- VK(见说明)
- Zulip(见说明)
Administration
在初始安装和安全设置之后,可以通过与bot(chatops)聊天来管理Errbot。
- 安装/卸载/更新/启用/禁用git上托管的私有或公共插件
- 插件可以通过聊天配置
- 引导机器人加入/离开多用户聊天室(MUC)
- 安全性:ACL控制功能(每个命令的管理员/用户权限)
- 后援:综合指挥部!备份创建持久数据的完整导出。
- 日志:可以从聊天或流到哨兵。
Developer features
- 在Python中很容易扩展!(见下文)
- 每个插件(即
self['foo'] = 'bar'
)的预置存储将保持该值。 - 会话流跟踪用户的会话状态。
- Webhook回调支持
- 支持markdown附加格式,包括表格、嵌入图像、链接等。
- 配置助手,允许通过聊天配置插件
- 图形和文本开发/调试控制台
- Self-documenting:你的docstring会自动变成帮助
- 可以使用子命令和各种arg解析选项(re,命令行类型)
- 轮询支持:你可以设置一个插件来定期做一些事情
- 端到端测试后端
- Slack和Hipchat下的卡片渲染。
社区和支持
如果您有:
- 一个快速的问题,请随时加入我们的聊天室errbotio/errbot on Gitter。
- 一个插件开发问题,请使用带有errbot和python标记的Stackoverflow。
- 要报告的错误或功能请求,请使用我们的GitHub项目页面。
关于更多的一般性讨论和公告,您可以加入googleplus社区。你也可以在Twitter上用标签#errbot
ping我们。
Installation
Prerequisites
Errbot在Linux、Windows和Mac上的Python3.6+下运行。对于某些聊天系统,您需要一个密钥或登录名才能访问它。
Quickstart
我们建议设置一个virtualenv。
- 从pip安装errbot
- 在某处创建一个目录(这里称为errbot)来存放errbot的数据文件
- 初始化目录
- 在文本模式下试用Errbot
$ pip install errbot
$ mkdir errbot; cd errbot
$ errbot --init
$ errbot
它将显示一个提示>>>以便您可以直接与您的机器人对话!尝试!帮助开始。
添加对聊天系统的支持
对于built-ins,只需使用slack、hipchat、telegram、IRC、XMPP和pip中的一个,您仍然可以在初始安装之后添加缺失的支持
$ pip install "errbot[slack]"
对于外部的(Skype、Gitter、Discord等…),请按照各自的github页面进行操作。
Configuration
为了配置Errbot连接到其中一个聊天系统,您需要调整Errbot–init生成的config.py文件。
为了帮助您,我们在这里提供了一个文档模板:config-template.py。
注意:即使您从配置中更改了后端,您仍然可以使用errbot-T和errbot-G在本地测试实例(分别以文本和图形模式)。
将Errbot作为守护程序启动
如果所有这些都有效,现在可以使用-d(或–daemon)参数以分离模式运行它:
errbot --daemon
与机器人交互
启动Errbot之后,如果还没有,应该将bot添加到好友列表中。你也需要在一些聊天系统上明确邀请机器人进入聊天室。你现在可以直接向机器人发送命令了!
要获取所有可用命令的列表,可以发出:
!help
如果您只想了解有关特定命令的更多信息,可以发出:
!help command
Managing plugins
如果您的句柄在中的BOT_ADMINS列表中,则可以在one-on-one聊天中管理bot配置.py.
例如,要在公共插件回购中搜索关键字,您可以发布:
!repos search jira
要安装此列表中的插件,请发出:
!repos install <name of repo>
例如!repos安装errbotio/err-imagebot。
Writing plugins
编写自己的插件非常简单。errbot–init将在plugins子目录中安装一个名为err-example的插件,您可以使用它作为基础。
例如,创建一个“Hello,world!”Errbot插件:
from errbot import BotPlugin, botcmd
class Hello(BotPlugin):
"""Example 'Hello, world!' plugin for Errbot"""
@botcmd
def hello(self, msg, args):
"""Return the phrase "Hello, world!" to you"""
return "Hello, world!"