diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2020-11-11 13:17:41 +0100 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2020-11-11 13:17:41 +0100 |
| commit | 2a3eb31fe09152729f80f9329bedfec96c8ebff4 (patch) | |
| tree | 0ff15a62d69d7f239497a63f86825a82628c89c9 | |
| parent | c01c8716de4a91e4c60f61cf0bb6eaeca5cbf619 (diff) | |
| download | kodapa-2a3eb31fe09152729f80f9329bedfec96c8ebff4.tar.gz | |
send more strings between async
| -rw-r--r-- | src/discord.rs | 9 | ||||
| -rw-r--r-- | src/slack.rs | 9 |
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); + } } |
