#discord-bot #discord #bot #ping #todo

nightly app secubot

又一个Discord机器人!

17个稳定版本

2.9.0 2024年1月19日
2.8.0 2023年11月13日
2.7.0 2023年9月24日
2.3.0 2023年3月20日
1.2.3 2022年10月18日

#1851 in Web编程

Download history 73/week @ 2024-03-13 2/week @ 2024-03-27 3/week @ 2024-04-03

每月82次下载

MIT许可

70KB
2K SLoC

Secubot

Rust CI

我不会编程,直到我写了自己的Discord机器人,对吧?如果不是Rust,那么最好的编程语言是什么呢?

这个机器人最初是为了满足《网络安全战士》组织对ping炮替代品的需求而编写的,随着时间的推移,我只是不断添加新功能。

功能

  • 强大的ping炮 - 为用户提供10分钟的ping,之后超时,允许在ping过程中添加和删除用户
  • TODO列表 - 提供基于数据库的每个频道的TODO列表,允许指定负责人,它还会发布关于未完成的todos的定期提醒
  • 荣誉榜 - 提供基于数据库的每个公会列表,设计用于允许用户以提供的理由统计某物出现的次数
  • 机器人版本管理 - 允许检查最新版本说明并查看当前运行的版本

运行

本地编译

TODO

Docker

使用以下命令在本地构建镜像:docker build . 或拉取 ghcr.io/seqre/secubot 镜像。

使用以下命令快速运行机器人以进行测试

docker run -e SCBT__DISCORD_TOKEN="token" secubot:latest

要拥有本地的持久SQLite数据库,运行

touch db.sqlite                     // we need to create file first as docker cannot mount non-existing file
docker run \
  -v ${PWD}/db.sqlite:/db.sqlite \  // mount `db.sqlite` to have persistent database
  -e SCBT__DISCORD_TOKEN="token" \  // provide Discord token
  --name secubot \
  secubot:latest

要使用正确的配置文件,请添加以下挂载

touch db.sqlite
docker run \
  -v ${PWD}/config.yaml:/config.yaml:ro \ // mount `config.yaml` file as singular configuration file
  -v ${PWD}/config:/config:ro \           // mount whole `config/` directory if you need to have multiple configuration files
  -v ${PWD}/db.sqlite:/db.sqlite \        // mount `db.sqlite` to have persistent database
  --name secubot \
  secubot:latest

您可以使用config-rs支持的所有格式,以下以YAML为例。

配置

TODO

依赖项

~68MB
~1.5M SLoC