From 6fbdede8516e6d35afbd032a2ca6fc6ef109b484 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustav=20S=C3=B6rn=C3=A4s?= Date: Wed, 11 Nov 2020 17:31:23 +0100 Subject: send AgendaPoint instead of String between services --- src/slack.rs | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) (limited to 'src/slack.rs') diff --git a/src/slack.rs b/src/slack.rs index c13fc47..91705fa 100644 --- a/src/slack.rs +++ b/src/slack.rs @@ -1,3 +1,5 @@ +use crate::agenda::AgendaPoint; + use futures::join; use slack::{ Event, @@ -12,17 +14,17 @@ use tokio::{ }; struct Handler { - sender: mpsc::UnboundedSender, + sender: mpsc::UnboundedSender, } impl Handler { - fn new(sender: mpsc::UnboundedSender) -> Self { + fn new(sender: mpsc::UnboundedSender) -> Self { Self { sender } } - fn sender(&self) -> &mpsc::UnboundedSender { + fn sender(&self) -> &mpsc::UnboundedSender { &self.sender } } @@ -34,11 +36,10 @@ impl slack::EventHandler for Handler { Event::Message(msg) => { match *msg { Message::Standard(msg) => { - 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(); + self.sender().send(AgendaPoint{ + title: msg.text.unwrap_or("??".to_string()), + adder: msg.user.unwrap_or("??".to_string()), + }); } _ => {} } @@ -58,8 +59,8 @@ impl slack::EventHandler for Handler { pub async fn handle( token: Option, - sender: mpsc::UnboundedSender, - receiver: mpsc::UnboundedReceiver, + sender: mpsc::UnboundedSender, + receiver: mpsc::UnboundedReceiver, ) { println!("Setting up Slack"); @@ -85,16 +86,16 @@ pub async fn handle( } async fn receive_from_discord( - mut receiver: mpsc::UnboundedReceiver, + mut receiver: mpsc::UnboundedReceiver, sender: slack::Sender, ) { - while let Some(s) = receiver.recv().await { - println!("Slack received '{}'", s); + 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", &s).unwrap(); + sender.send_message("CPBAA5FA7", &point.to_add_message()).unwrap(); println!("Sent"); } } -- cgit v1.2.1