diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2020-11-11 10:28:57 +0100 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2020-11-11 10:28:57 +0100 |
| commit | 99496d745f70cc0e65bc42df01aecc7483ff1166 (patch) | |
| tree | 0007fd7bb5fa4853f3979e79c6c16a5263902221 | |
| parent | 4ae73c3e2b9a660106030f84e06540ef1324b33e (diff) | |
| download | kodapa-99496d745f70cc0e65bc42df01aecc7483ff1166.tar.gz | |
initial discord
| -rw-r--r-- | Cargo.toml | 6 | ||||
| -rw-r--r-- | src/main.rs | 39 |
2 files changed, 40 insertions, 5 deletions
@@ -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); + } + } + } + } } |
