aboutsummaryrefslogtreecommitdiffstats
path: root/src/discord.rs
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2020-11-17 11:23:53 +0100
committerGustav Sörnäs <gustav@sornas.net>2020-11-17 11:23:53 +0100
commit99666a04a490d6467288f28577755dbebbf55054 (patch)
treebbb5cb71ccf8463cd3142625f9c60b77687f54f9 /src/discord.rs
parent24ff336706ba1dddb0ab8c7e264f39811128c5cf (diff)
downloadkodapa-99666a04a490d6467288f28577755dbebbf55054.tar.gz
discord: react to !add instead of answering
Diffstat (limited to 'src/discord.rs')
-rw-r--r--src/discord.rs46
1 files changed, 32 insertions, 14 deletions
diff --git a/src/discord.rs b/src/discord.rs
index 0507da8..2410a3f 100644
--- a/src/discord.rs
+++ b/src/discord.rs
@@ -8,6 +8,7 @@ use discord::{
ChannelId,
Event,
PossibleServer,
+ ReactionEmoji,
},
Discord,
Error,
@@ -71,10 +72,11 @@ fn receive_events(
server
.channels
.iter()
- .map(|channel| format!("{}: {} ({:?})",
- channel.name,
- channel.id,
- channel.kind))
+ .map(|channel|
+ format!("{}: {} ({:?})",
+ channel.name,
+ channel.id,
+ channel.kind))
.collect::<Vec<_>>());
}
}
@@ -83,15 +85,29 @@ fn receive_events(
Ok(Event::MessageCreate(message)) => {
if let Some(channel) = channel {
if channel == message.channel_id {
- if let Ok(Some(s)) = parse_message(
+ match parse_message(
&message.content,
&message.author.name,
- &sender,
+ &sender
) {
- client.lock().unwrap().send_message(channel,
- &s,
- "",
- false).unwrap();
+ Ok(Some(s)) => {
+ client.lock().unwrap().send_message(
+ channel,
+ &s,
+ "",
+ false
+ ).unwrap();
+ }
+ Ok(None) => {
+ // thumbs up
+ client.lock().unwrap().add_reaction(
+ channel,
+ message.id,
+ ReactionEmoji::Unicode("👍".to_string())
+ ).unwrap();
+
+ }
+ Err(_) => {}
}
}
}
@@ -116,10 +132,12 @@ async fn receive_from_slack(
if let Some(channel) = channel {
while let Some(point) = receiver.recv().await {
println!("Discord received '{}'", point);
- client.lock().unwrap().send_message(channel,
- &point.to_add_message(),
- "",
- false).unwrap();
+ client.lock().unwrap().send_message(
+ channel,
+ &point.to_add_message(),
+ "",
+ false
+ ).unwrap();
}
}