diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2020-11-11 14:55:18 +0100 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2020-11-11 15:16:20 +0100 |
| commit | 222acec5e5153d169ae909a8c68b382f01becff2 (patch) | |
| tree | e7380ca779e9060577c6057558f9b4ed0085041a /src | |
| parent | 1fd5df9524f84511b8d22300e5b2aa1fb2063660 (diff) | |
| download | kodapa-222acec5e5153d169ae909a8c68b382f01becff2.tar.gz | |
send messages to slack channel
Diffstat (limited to 'src')
| -rw-r--r-- | src/slack.rs | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/slack.rs b/src/slack.rs index 887c1f9..feff430 100644 --- a/src/slack.rs +++ b/src/slack.rs @@ -34,7 +34,8 @@ impl slack::EventHandler for Handler { Event::Message(msg) => { match *msg { Message::Standard(msg) => { - self.sender().send(format!("{} says: {}", + self.sender().send(format!("{}:{} says: {}", + msg.channel.unwrap_or("??".to_string()), msg.user.unwrap_or("??".to_string()), msg.text.unwrap_or("??".to_string())) .to_string()).unwrap(); @@ -63,11 +64,16 @@ pub async fn handle( println!("Setting up Slack"); let token = std::env::var("SLACK_API_TOKEN").unwrap_or(token.unwrap()); + let client = spawn_blocking(move || { + slack::RtmClient::login(&token).unwrap() + }).await.unwrap(); + + let slack_sender = client.sender().clone(); join!( spawn_blocking(move || { let mut handler = Handler::new(sender); - match slack::RtmClient::login_and_run(&token, &mut handler) { + match client.run(&mut handler) { Ok(_) => {} Err(e) => { println!("Error: {}", e) @@ -77,6 +83,12 @@ pub async fn handle( spawn(async move { while let Some(s) = receiver.recv().await { println!("Slack received '{}'", s); + //TODO Sending messages is very slow sometimes. Have seen delays + // from 5 up to 20(!) seconds. + slack_sender.send_typing("CPBAA5FA7").unwrap(); + println!("Typing"); + slack_sender.send_message("CPBAA5FA7", &s).unwrap(); + println!("Sent"); } }) ); |
