From 99496d745f70cc0e65bc42df01aecc7483ff1166 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustav=20S=C3=B6rn=C3=A4s?= Date: Wed, 11 Nov 2020 10:28:57 +0100 Subject: initial discord --- Cargo.toml | 6 +++--- src/main.rs | 39 +++++++++++++++++++++++++++++++++++++-- 2 files changed, 40 insertions(+), 5 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 8d7ffc7..e78a69a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,6 +7,6 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -serenity = "0.9" # discord api -slack_api = "0.23" -tokio = { version = "0.2", features = ["full"] } +discord = { git = "https://github.com/SpaceManiac/discord-rs" } #TODO no voice +slack_api = "0.23" #TODO no voice +tokio = { version = "0.2", features = ["full"] } #TODO actual features diff --git a/src/main.rs b/src/main.rs index aef3fa9..fb1ee99 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,7 @@ +use discord::{ + model::Event, + Discord, +}; use slack_api as slack; #[tokio::main] @@ -5,11 +9,15 @@ async fn main() { println!("Hello, world!"); println!("Setting up Slack"); - let slack_token = std::env::var("SLACK_API_TOKEN").expect("No token"); + let slack_token = std::env::var("SLACK_API_TOKEN") + .unwrap_or("" + .to_string()); let slack_client = slack::default_client().unwrap(); let slack_request = slack::rtm::StartRequest::default(); - let response = slack::rtm::start(&slack_client, &slack_token, &slack_request).await; + let response = slack::rtm::start(&slack_client, + &slack_token, + &slack_request).await; if let Ok(response) = response { if let Some(channels) = response.channels { @@ -30,4 +38,31 @@ async fn main() { } else { println!("{:?}", response) } + + println!("Setting up Discord"); + + let discord_token = std::env::var("DISCORD_API_TOKEN") + .unwrap_or("" + .to_string()); + let discord = Discord::from_bot_token(&discord_token); + + if let Ok(discord) = discord { + let (mut connection, _) = discord.connect() .expect("discord connect failed"); + println!("Discord ready"); + loop { + match connection.recv_event() { + Ok(Event::MessageCreate(message)) => { + println!("{} says: {}", message.author.name, message.content); + } + Ok(_) => {} + Err(discord::Error::Closed(code, body)) => { + println!("Discord closed with code {:?}: {}", code, body); + break; + } + Err(err) => { + println!("Error: {:?}", err); + } + } + } + } } -- cgit v1.2.1