diff options
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 39 |
1 files changed, 37 insertions, 2 deletions
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); + } + } + } + } } |
