aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/discord.rs20
-rw-r--r--src/main.rs7
-rw-r--r--src/slack.rs15
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");
}
}