1 个不稳定版本

0.1.0 2022年6月13日

#26 in #revolt

BSD-3-Clause 协议

33KB
657

ataraxia

revolt.chat API 提供的最小化 API 包装器

一个基本的 Ping-Pong 机器人的样子

use ataraxia::{
    websocket::{Client, EventHandler},
    models::message::Message as RevoltMessage,
    context::Context,
    async_trait
};

struct Handler;

#[async_trait]
impl EventHandler for Handler {
    async fn authenticated(&self) {
        println!("Authenticated!");
    }
    async fn ready(&self, _ctx: Context) {
        println!("Ready!");
    }
    async fn on_message(&self, ctx: Context, message: RevoltMessage) {
        println!("{}", message);

        if message.content == "!ping" {


            ctx.reply_builder(&message.channel_id, |r| {
                r.content("Pong!")
            }).await

    }
}


#[tokio::main]
async fn main() {

    let token = std::env::var("TOKEN").expect("token");
     let mut client = Client::new(token)
        .event_handler(Handler)
        .set_api_url("https://api.revolt.chat");

    client.start().await;

}

依赖项

~10–25MB
~398K SLoC