diff options
| -rw-r--r-- | src/discord.rs | 20 | ||||
| -rw-r--r-- | src/main.rs | 7 | ||||
| -rw-r--r-- | src/slack.rs | 15 |
3 files changed, 24 insertions, 18 deletions
diff --git a/src/discord.rs b/src/discord.rs index 9e6550c..fe64b24 100644 --- a/src/discord.rs +++ b/src/discord.rs @@ -17,14 +17,16 @@ use tokio::{ }, }; +const TOKEN: Option<&str> = None; +const CHANNEL: Option<u64> = None; + pub async fn handle( - token: Option<String>, sender: mpsc::UnboundedSender<AgendaPoint>, receiver: mpsc::UnboundedReceiver<AgendaPoint>, ) { println!("Setting up Discord"); - let token = std::env::var("DISCORD_API_TOKEN").unwrap_or(token.unwrap()); + let token = std::env::var("DISCORD_API_TOKEN").unwrap_or_else(|_| TOKEN.expect("Missing Discord token").to_string()); let client = Discord::from_bot_token(&token); if let Ok(client) = client { @@ -72,10 +74,16 @@ async fn receive_from_slack( ) { while let Some(point) = receiver.recv().await { println!("Discord received '{}'", point); - client.send_message(ChannelId(697057150106599488), //TODO - &point.to_add_message(), - "", - false + client.send_message( + ChannelId( + match std::env::var("DISCORD_CHANNEL") { + Ok(var) => var.parse().unwrap(), + Err(_) => CHANNEL.expect("Missing Discord channel"), + } + ), + &point.to_add_message(), + "", + false ).unwrap(); } diff --git a/src/main.rs b/src/main.rs index 8d8fa5c..d3a24f3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,17 +9,14 @@ use tokio::sync::mpsc; #[tokio::main] async fn main() { - let slack_token: Option<String> = None; - let discord_token: Option<String> = None; - println!("Hello, world!"); let (from_discord, to_slack) = mpsc::unbounded_channel::<AgendaPoint>(); let (from_slack, to_discord) = mpsc::unbounded_channel::<AgendaPoint>(); join!( - discord::handle(discord_token, from_discord, to_discord), - slack::handle(slack_token, from_slack, to_slack), + discord::handle(from_discord, to_discord), + slack::handle(from_slack, to_slack), ); } diff --git a/src/slack.rs b/src/slack.rs index e13ac3d..b460925 100644 --- a/src/slack.rs +++ b/src/slack.rs @@ -13,6 +13,9 @@ use tokio::{ }, }; +const TOKEN: Option<&str> = None; +const CHANNEL: Option<&str> = None; + struct Handler { sender: mpsc::UnboundedSender<AgendaPoint>, } @@ -58,13 +61,12 @@ impl slack::EventHandler for Handler { } pub async fn handle( - token: Option<String>, sender: mpsc::UnboundedSender<AgendaPoint>, receiver: mpsc::UnboundedReceiver<AgendaPoint>, ) { println!("Setting up Slack"); - let token = std::env::var("SLACK_API_TOKEN").unwrap_or(token.unwrap()); + let token = std::env::var("SLACK_API_TOKEN").unwrap_or_else(|_| TOKEN.expect("Missing slack token").to_string()); let client = spawn_blocking(move || { slack::RtmClient::login(&token).unwrap() }).await.unwrap(); @@ -90,12 +92,11 @@ async fn receive_from_discord( sender: slack::Sender, ) { while let Some(point) = receiver.recv().await { - println!("Slack received '{}'", point); //TODO Sending messages is very slow sometimes. Have seen delays // from 5 up to 20(!) seconds. - sender.send_typing("CPBAA5FA7").unwrap(); - println!("Typing"); - sender.send_message("CPBAA5FA7", &point.to_add_message()).unwrap(); - println!("Sent"); + let channel = std::env::var("SLACK_CHANNEL").unwrap_or_else(|_| CHANNEL.expect("Missing slack channel").to_string()); + sender.send_typing(&channel).unwrap(); + sender.send_message(&channel, &point.to_add_message()).unwrap(); + println!("Slack message sent"); } } |
