#slack #messages #bot #routing #definition #forward

bin+lib telescreen

一个简单的路由定义来转发消息的 Slack 机器人

3 个版本

使用旧的 Rust 2015

0.1.3 2017 年 5 月 20 日
0.1.2 2017 年 5 月 20 日
0.1.0 2017 年 5 月 7 日

#24#forward

MIT 许可证

16KB
315

telescreen

Build Status

telescreen 是一个 Slack 机器人,通过简单的路由定义文件在频道之间转发消息。

以下截图显示了使用以下配置时的行为。

- match: 'personal-.+'
  destinations:
    - personal-timeline
- match: '.*'
  destinations:
    - public-timeline

快速开始

🔧 预构建的二进制文件

您可以从 Linux 和 macOS 的 GitHub 发布页面 下载预构建的二进制文件。仅 Linux 版本的二进制文件是静态链接的。

🌱 在您的环境中构建

如果您是 Rust 程序员,可以使用 cargo 命令安装,

$ cargo install telescreen

也可以手动构建,

$ git clone [email protected]:mozamimy/telescreen.git
$ cd telescreen
$ cargo build --release
$ ./target/release/telescreen --help
Usage: ./target/debug/telescreen [options]

Options:
    -a, --api-key API_KEY
                        Slack API key for bot integration
    -c, --config FILE   Path to config file
    -h, --help          Print this help menu

此外,您可以使用 muslrust Docker 镜像构建静态链接的二进制文件。

$ docker pull clux/muslrust
$ ./exec_with_muslrust cargo build --release

📃 创建一个配置文件

路由规则可以通过格式为 YAML 的文件进行配置。文件包含一个包含类似 { match: regex, destinations: [channel1, channel2, ... ] } 的哈希的数组。

例如,以下配置将所有消息发送到 #public-timeline 频道。

- match: '.*'
  destinations:
    - public-timeline

另一方面,以下示例也将所有消息发送到 #public-timeline 频道,并将带有 personal- 前缀的消息发送到 #personal-timeline 频道。

- match: 'personal-.+'
  destinations:
    - personal-timeline
- match: '.*'
  destinations:
    - public-timeline

🚀 运行

您可以像以下命令一样运行 telescreen,

$ telescreen --api-key=[API_KEY] --config=/path/to/your/config

🐳 使用 Docker 运行

该镜像托管在 Docker Hub mozamimy/telescreen

$ git clone [email protected]:mozamimy/telescreen.git
$ cd telescreen
$ API_KEY=[API_KEY] DEST_CHANNEL=your-channel docker-compose up
$ docker-compose down

您可以通过环境变量进行配置,

  • API_KEY:机器人集成所需的 Slack API 密钥(必需)
  • DEST_CHANNEL:目标频道(默认:general)

它简单地收集消息并发送到 DEST_CHANNEL。如果您想使用更复杂的配置,您应该创建自己的配置并在容器中使用它。

✒️ 记录

您可以使用 RUST_LOG 环境变量指定日志级别。以下关键字可用,

  • 跟踪
  • 调试
  • 信息
  • 警告
  • 错误(默认)

贡献

欢迎在 GitHub 上提交错误报告和拉取请求 https://github.com/mozamimy/telescreen

许可证

该程序在MIT许可证的条款下作为开源软件提供。

依赖项

~13–22MB
~353K SLoC