aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2020-12-01 07:44:15 +0100
committerGustav Sörnäs <gustav@sornas.net>2020-12-01 07:44:15 +0100
commitc1b9d90f2f81f7acb0f4a88acf7056874e9cbe2f (patch)
treeb4c58b75879c701828df569af99930837222bab6
parent8e2c03be2f331e2548276e6683f21f1ffd5980a7 (diff)
downloadkodapa-c1b9d90f2f81f7acb0f4a88acf7056874e9cbe2f.tar.gz
restart slack websocket on error
-rw-r--r--src/slack.rs14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/slack.rs b/src/slack.rs
index 49c8cfa..45a3dc6 100644
--- a/src/slack.rs
+++ b/src/slack.rs
@@ -1,7 +1,7 @@
use crate::agenda::{parse_message, AgendaPoint, Emoji};
use futures::join;
-use slack::{Event, Message};
+use slack::{error::Error, Event, Message};
use slack_api::{reactions, users};
use std::{
collections::{hash_map::Entry, HashMap},
@@ -188,9 +188,15 @@ pub async fn handle(
let (_, _) = join!(
spawn_blocking(move || {
- match client.run(&mut handler) {
- Ok(_) => {}
- Err(e) => println!("Error: {}", e),
+ loop {
+ match client.run(&mut handler) {
+ Ok(_) => {}
+ Err(Error::WebSocket(_)) => println!("Restart slack socket"),
+ Err(e) => {
+ println!("Error: {}", e);
+ break;
+ }
+ }
}
}),
spawn(receive_from_discord(receiver, slack_sender, channel))