#discord #bot #self

hubbub

Discord自建机器人库(处于非常早期开发阶段)

16个版本 (6个破坏性更新)

0.9.2 2024年6月22日
0.9.1 2024年6月22日
0.8.0 2024年6月19日
0.7.0 2024年6月18日
0.2.4 2024年6月16日

#947 in 网络编程

Download history 476/week @ 2024-06-14 270/week @ 2024-06-21 18/week @ 2024-06-28 31/week @ 2024-07-05 140/week @ 2024-07-26 13/week @ 2024-08-02

每月下载量153次

GPL-3.0-or-later

99KB
3K SLoC

Hubbub

Rust库,用于创建Discord自建机器人(处于非常早期开发阶段)

当前功能

  • 允许传递一个模型
  • 使用令牌连接到网关
  • 支持重新连接到网关(半测试,应该可行)
  • 支持调用Discord的HTTP API(任何版本)
  • 支持发送和接收网关事件
  • 大多数 Discord的许多数据结构已转换为serde兼容的结构体
  • 主要结构体有方便的函数用于执行常见任务(例如:创建消息)

使用库

  1. 使用cargo add hubbub将库添加到项目中
  2. 导入hubbub::prelude::*:
  3. 创建你的模型
struct App {
    // ...
}
  1. 创建客户端
#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let mut client = Client::new(
        App { /* ... */ },
        /* Event handler */
    ).await?;

    client.token(/* Token */).await?;
    client.login().await?;
    client.run().await?;
}
  1. 创建事件处理器
async fn main() {
    // ...
    
    /* Event handler */
    Box::from(
        |ctx: Ctx, ws: Ws, model: Model<App>, msg: DiscordMessage| async move {
            /* do work here */
        }
    )
    
    // ...
}
  1. 成功,希望如此!

有任何问题吗?

  • 查看示例
  • 查看ContextDiscordMessage结构体
  • 查看prelude

依赖

~8–22MB
~311K SLoC