Errbot是一个聊天机器人,它是一个连接到您最喜欢的聊天服务的守护程序,并将您的工具和一些有趣的东西带到对话中。

Errbot

Errbot是一个聊天机器人。它允许你从聊天室以交互方式启动脚本,原因包括:随机幽默、聊天、启动构建、监控提交、触发警报。。。

它是用Python编写的,易于扩展。

Errbot作为open-source软件提供,并在gplv3许可下发布。

Features

聊天服务器支持

Built-in

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上用标签#errbotping我们。

Installation

Prerequisites

Errbot在Linux、Windows和Mac上的Python3.6+下运行。对于某些聊天系统,您需要一个密钥或登录名才能访问它。

Quickstart

我们建议设置一个virtualenv。

  1. 从pip安装errbot
  2. 在某处创建一个目录(这里称为errbot)来存放errbot的数据文件
  3. 初始化目录
  4. 在文本模式下试用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!"
Share