aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2020-11-11 13:17:41 +0100
committerGustav Sörnäs <gustav@sornas.net>2020-11-11 13:17:41 +0100
commit2a3eb31fe09152729f80f9329bedfec96c8ebff4 (patch)
tree0ff15a62d69d7f239497a63f86825a82628c89c9
parentc01c8716de4a91e4c60f61cf0bb6eaeca5cbf619 (diff)
downloadkodapa-2a3eb31fe09152729f80f9329bedfec96c8ebff4.tar.gz
send more strings between async
-rw-r--r--src/discord.rs9
-rw-r--r--src/slack.rs9
2 files changed, 10 insertions, 8 deletions
diff --git a/src/discord.rs b/src/discord.rs
index 06baec6..7c469b2 100644
--- a/src/discord.rs
+++ b/src/discord.rs
@@ -13,25 +13,24 @@ use tokio::{
pub async fn handle(
token: Option<String>,
- _sender: mpsc::UnboundedSender<String>,
+ sender: mpsc::UnboundedSender<String>,
mut receiver: mpsc::UnboundedReceiver<String>,
) {
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(token.unwrap());
let client = Discord::from_bot_token(&token);
if let Ok(client) = client {
let (mut connection, _) = client.connect().expect("discord connect failed"); //TODO
println!("Discord ready");
- let (_, _) = join!( //TODO
+ let (_, _) = join!( //TODO?
spawn_blocking(move || {
loop {
match connection.recv_event() {
Ok(Event::MessageCreate(message)) => {
- println!("{} says: {}", message.author.name, message.content);
+ sender.send(format!("{} says: {}", message.author.name, message.content)).unwrap();
}
Ok(_) => {}
Err(discord::Error::Closed(code, body)) => {
diff --git a/src/slack.rs b/src/slack.rs
index 40e465c..9a30b49 100644
--- a/src/slack.rs
+++ b/src/slack.rs
@@ -4,12 +4,11 @@ use tokio::sync::mpsc;
pub async fn handle(
token: Option<String>,
sender: mpsc::UnboundedSender<String>,
- _receiver: mpsc::UnboundedReceiver<String>,
+ mut receiver: mpsc::UnboundedReceiver<String>,
) {
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(token.unwrap());
let client = slack::default_client().unwrap();
let request = slack::rtm::StartRequest::default();
@@ -36,4 +35,8 @@ pub async fn handle(
} else { //TODO NotAuth etc
println!("{:?}", response)
}
+
+ while let Some(s) = receiver.recv().await {
+ println!("Slack received '{}' from discord", s);
+ }
}