From 48f6f5a32e71b19894c93402030a97746eec6e93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustav=20S=C3=B6rn=C3=A4s?= Date: Wed, 18 Nov 2020 01:09:18 +0100 Subject: small scale refactoring --- src/discord.rs | 21 ++++++++++++--------- src/slack.rs | 16 +++++++++------- 2 files changed, 21 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/discord.rs b/src/discord.rs index 2410a3f..6970759 100644 --- a/src/discord.rs +++ b/src/discord.rs @@ -35,7 +35,8 @@ pub async fn handle( ) { println!("Setting up Discord"); - let token = std::env::var("DISCORD_API_TOKEN").unwrap_or_else(|_| TOKEN.expect("Missing Discord token").to_string()); + let token = std::env::var("DISCORD_API_TOKEN") + .unwrap_or_else(|_| TOKEN.expect("Missing Discord token").to_string()); let client = Discord::from_bot_token(&token); if let Ok(client) = client { @@ -43,12 +44,11 @@ pub async fn handle( let our_id = client.get_current_user().unwrap().id; let client = Arc::new(Mutex::new(client)); - let channel = match std::env::var("DISCORD_CHANNEL") { - Ok(channel) => Some(ChannelId(channel.parse::().unwrap())), - Err(_) => CHANNEL, - }; + let channel = std::env::var("DISCORD_CHANNEL") + .map(|id| Some(ChannelId(id.parse::().unwrap()))) + .unwrap_or(CHANNEL); - let (_, _) = join!( //TODO? + let (_, _) = join!( spawn(receive_from_slack(receiver, Arc::clone(&client), channel)), spawn_blocking(move || receive_events(our_id, connection, sender, client, channel)), ); @@ -65,8 +65,8 @@ fn receive_events( loop { match connection.recv_event() { Ok(Event::ServerCreate(server)) => { - if channel.is_none() { - if let PossibleServer::Online(server) = server { + match (channel, server) { + (None, PossibleServer::Online(server)) => { println!("Discord channels in {}: {:#?}", server.name, server @@ -79,6 +79,10 @@ fn receive_events( channel.kind)) .collect::>()); } + (None, PossibleServer::Offline(server)) => { + println!("Server {} is offline", server); + } + (Some(_), _) => {} } } @@ -105,7 +109,6 @@ fn receive_events( message.id, ReactionEmoji::Unicode("👍".to_string()) ).unwrap(); - } Err(_) => {} } diff --git a/src/slack.rs b/src/slack.rs index 750f071..bb80ff1 100644 --- a/src/slack.rs +++ b/src/slack.rs @@ -57,13 +57,15 @@ impl slack::EventHandler for Handler { .start_response() .channels .as_ref() - .and_then(|channels| { - Some(channels - .iter() - .map(|channel| format!("{}: {}", - channel.name.as_ref().unwrap_or(&"??".to_string()), //TODO &"".to_string() ? - channel.id.as_ref().unwrap_or(&"??".to_string()))) //TODO - .collect::>()) + .map(|channels| { + channels + .iter() + .map(|channel| format!( + "{}: {}", + channel.name.as_deref().unwrap_or("??"), + channel.id.as_deref().unwrap_or("??"), + )) + .collect::>() })); } } -- cgit v1.2.1