3 个稳定版本
1.0.2 | 2020 年 12 月 15 日 |
---|---|
1.0.1 | 2020 年 12 月 11 日 |
#35 in #slack
22KB
384 行
discord-retention-bot
一个允许您为单个 Discord 文本频道设置消息保留期的机器人。
目录
功能
- 自动删除超过配置时间的旧消息
- 除非配置,否则不要删除固定消息
- 多频道配置(例如,保留
#general
频道两周,但#random
频道一天) - 为所有未定义保留期的频道设置默认配置
准备
在运行您的机器人之前,您需要在 Discord 上创建它
- 在 Discord 开发者门户 中创建一个 Discord 应用程序
- 转到
Bot
并点击Add Bot
,并确保取消选中Public bot
- 从
General Information
标签中复制CLIENT ID
- 转到 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
从源代码构建
- 使用以下命令克隆仓库:
git clone https://github.com/bahlo/discord-retention-bot
- 运行以下命令构建二进制文件到
target/release/discord-retention-bot
:cargo build --release
配置
通过环境变量(可选地在 .env
文件中)配置您的机器人。
RUST_LOG
这定义了日志级别。我建议将此设置为 discord-retention-bot=info
以进行常规使用。
DISCORD_TOKEN
您的 Discord 机器人的令牌。您可以通过访问 Discord 开发者门户,转到您的应用程序 → 机器人并复制令牌来获取。
DELETE_PINNED
可以设置为 true
或 false
。如果设置为 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