#discord-bot #bot #discord #slack #retention

nightly app discord-retention-bot

一个允许您为单个 Discord 文本频道设置消息保留期的机器人

3 个稳定版本

1.0.2 2020 年 12 月 15 日
1.0.1 2020 年 12 月 11 日

#35 in #slack

MIT 许可证

22KB
384

discord-retention-bot CI Audit

一个允许您为单个 Discord 文本频道设置消息保留期的机器人。

目录

功能

  • 自动删除超过配置时间的旧消息
  • 除非配置,否则不要删除固定消息
  • 多频道配置(例如,保留 #general 频道两周,但 #random 频道一天)
  • 为所有未定义保留期的频道设置默认配置

准备

在运行您的机器人之前,您需要在 Discord 上创建它

  1. Discord 开发者门户 中创建一个 Discord 应用程序
  2. 转到 Bot 并点击 Add Bot,并确保取消选中 Public bot
  3. General Information 标签中复制 CLIENT ID
  4. 转到 https://discord.com/oauth2/authorize?client_id=$CLIENT_ID&scope=bot&permissions=74752 并将您的机器人添加到您的 Discord 服务器

等待,74752 是什么意思?

74752 是以下权限的位掩码

  • 查看频道
  • 管理消息
  • 读取消息历史记录

您可以通过在您的机器人页面上的机器人权限掩码中检查这些来验证此信息。

安装

下载二进制文件

转到 GitHub 发布 并下载适用于您的架构的二进制文件。

Docker

您可以使用提供的 Docker 镜像 docker.pkg.github.com/bahlo/discord-retention-bot/discord-retention-bot:1.02

货物

运行以下命令以从 crates.io 安装最新版本:cargo install discord-retention-bot

从源代码构建

  1. 使用以下命令克隆仓库:git clone https://github.com/bahlo/discord-retention-bot
  2. 运行以下命令构建二进制文件到 target/release/discord-retention-botcargo build --release

配置

通过环境变量(可选地在 .env 文件中)配置您的机器人。

RUST_LOG

这定义了日志级别。我建议将此设置为 discord-retention-bot=info 以进行常规使用。

DISCORD_TOKEN

您的 Discord 机器人的令牌。您可以通过访问 Discord 开发者门户,转到您的应用程序 → 机器人并复制令牌来获取。

DELETE_PINNED

可以设置为 truefalse。如果设置为 true,则也会删除固定消息。默认为 false

CHANNEL_RETENTION

一个由逗号分隔的频道名称列表和消息应删除后的持续时间。您也可以配置 * 以匹配所有未配置的频道。持续时间是一个数字,后跟 h(小时)、d(天)或 w(周)。请注意,此配置适用于您的机器人添加到的所有公会。

示例

general:2w,random:4d,*:4w 将导致消息在以下时间被删除:

  • general:两周后
  • random:四天后
  • 其他频道在四周后

故障排除

为什么需要这么长时间?

Discord 可能会对您进行速率限制。此应用程序使用单条消息删除端点,因为 批量删除消息 不支持超过两周的消息。第一次可能需要一些时间,但速度会更快。

没有删除频道的消息

请确保机器人在 Discord 应用程序中可以访问该频道,并且具有以下权限:

  • 读取文本频道和查看语音频道
  • 管理消息
  • 读取消息历史记录

集成测试

要运行集成测试,您需要创建一个机器人(见 准备),但使用位掩码 76816,这相当于

  • 管理频道
  • 查看频道
  • 发送消息
  • 管理消息
  • 读取消息历史记录

将机器人令牌导出到 INTEGRATION_DISCORD_TOKEN,然后运行 cargo test -- --ignored 以运行集成测试。

依赖项

~24–37MB
~684K SLoC