#discord-bot #bot #discord #modio #sqlite

app modbot

mod.io的Discord机器人。ModBot提供搜索mod和有关添加和编辑mod的通知命令。

21个版本

0.6.3 2024年6月4日
0.6.2 2023年9月22日
0.6.1 2023年6月27日
0.5.5 2023年3月17日
0.2.0 2019年6月24日

#96 in Web编程

Download history 181/week @ 2024-06-01 17/week @ 2024-06-08 2/week @ 2024-06-15 65/week @ 2024-06-29

1,129 每月下载次数

MIT/Apache

175KB
4.5K SLoC

Rust 4K SLoC // 0.0% comments SQL 477 SLoC

ModBot for Discord

Crates.io Rust version License GitHub Action Discord

ModBot是使用modio-rstwilightmod.io的Discord机器人。

设置命令截图构建安装使用许可

设置

您可以使用以下URL邀请官方托管ModBot加入您的Discord服务器:https://discordbot.mod.io,或者按照下面的说明构建和安装自己的ModBot版本。

  1. 邀请ModBot https://discordbot.mod.io/
  2. 查看游戏列表 /games 并设置默认游戏 /settings default-game ID
  3. 在您想要机器人发布更新(mod添加/编辑)的频道中,运行命令 /subs add <GameID>
  4. 确保机器人在其所在的频道中具有 Send MessagesEmbed Links 权限,以便能够正常工作。

命令

一旦您邀请了ModBot到您的服务器,您可以使用命令 /settings default-game ID 设置默认游戏。现在,当用户发出命令 /mods 时,将返回您指定的游戏的全部mod。您可以在任何时候更改默认游戏。

我们建议您还使用命令 /subs add <GameID> 订阅您感兴趣的接收推送通知的游戏。例如,在我们的#bot频道中,我们订阅了很多游戏,每次mod更新时,频道都会收到通知。

流行的命令包括

  • /game 返回默认游戏的信息

  • /games [search] 返回所有游戏的列表

  • /mods [ID|Name] 返回属于默认游戏的所有模组列表

  • /popular 返回按受欢迎程度排序的模组列表

  • /settings default-game <ID|Name> 设置默认游戏

  • /subs add <ID|Name> [Tag..] [Type] 订阅游戏以接收更新(添加/编辑的模组)

    /sub add 51
    /sub add OpenXcom
    /sub add OpenXcom tags:"UFO Defense",Major
    /sub add "Skate XL" tags:"Real World Spot"
    /sub add Skate* tags:Gear,Deck
    
  • /subs list 查看已订阅的所有游戏

  • /subs rm <ID|Name> [Tag..] [Type] 从游戏中取消订阅

    /subs rm 51
    /subs rm OpenXcom
    /subs rm OpenXcom tags:"UFO Defense",Major
    /subs rm "Skate XL" tags:"Real World Spot"
    /subs rm skate tags:Gear,Deck
    
  • /subs mods mute <Game> <Mod> 静音更新通知中的模组

  • /subs mods muted 返回所有静音模组的列表

  • /subs mods unmute <Game> <Mod> 从更新通知中取消静音模组

截图

模组详情

command details

新模组通知

notification

构建

ModBot是用Rust编写的,因此您需要获取一个Rust安装程序以编译它。构建很简单

$ git clone https://github.com/nickelc/modio-bot
$ cd modio-bot
$ cargo build --release
$ ./target/release/modbot

使用捆绑的sqlite3进行构建

使用功能 sqlite-bundled 从源编译sqlite3并将其链接到该库。

$ cargo build --features sqlite-bundled

安装

Cargo

https://crates.io安装最新版本。

$ cargo install modbot
$ $HOME/.cargo/bin/modbot

master 分支安装modbot。

$ cargo install --git https://github.com/nickelc/modio-bot
$ $HOME/.cargo/bin/modbot

使用方法

在工作目录中创建一个 bot.toml 配置文件。

[bot]
token="your discord bot token"
database_url="/path/to/sqlite.db"

[modio]
api_key="your mod.io api key"

示例文件作为 bot.example.toml 提供。

运行机器人

./path/to/modbot

./path/to/modbot --config path/to/bot.toml

日志记录

日志记录可以通过环境变量进行配置。

RUST_LOG=modio=debug,modbot=debug

有关更多信息,请参阅 tracing_subscriber::EnvFilter

指标

默认情况下,指标通过 Prometheus 端点列出,端点为 http://127.0.0.1:8080/metrics

[metrics]
addr = "127.0.0.1:3000"

许可证

许可证为以下之一

贡献

除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交给作品的所有贡献都应采用上述双重许可,不附加任何额外条款或条件。

依赖关系

~58MB
~1M SLoC