From 250b05405fdbe2eb92f72647625a516f47b0494a Mon Sep 17 00:00:00 2001 From: Joey Hines Date: Thu, 9 Jul 2020 22:05:01 -0500 Subject: [PATCH 1/3] Added configuration for setting roles to ping --- src/discord/mod.rs | 9 ++++++++- src/hypebot_config.rs | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/discord/mod.rs b/src/discord/mod.rs index 9251946..7adffac 100644 --- a/src/discord/mod.rs +++ b/src/discord/mod.rs @@ -97,6 +97,13 @@ pub fn send_event_msg( let native_time = utc_time.with_timezone(&config.event_timezone); + let ping_roles = &config.ping_roles; + let mut ping_roles_msg = String::new(); + + for role in ping_roles { + ping_roles_msg.push_str(format!(" <@&{}>", role).as_str()); + } + // Send message let msg = channel.id().send_message(&http, |m| { m.embed(|e| { @@ -114,7 +121,7 @@ pub fn send_event_msg( .timestamp(utc_time.to_rfc3339()) .field("Location", &event.event_loc, true) .field("Organizer", &event.organizer, true) - }) + }).content(ping_roles_msg) })?; if react { diff --git a/src/hypebot_config.rs b/src/hypebot_config.rs index c510e74..0b07737 100644 --- a/src/hypebot_config.rs +++ b/src/hypebot_config.rs @@ -13,6 +13,7 @@ pub struct HypeBotConfig { pub prefix: String, pub event_channel: u64, pub event_roles: Vec, + pub ping_roles: Vec, #[serde(deserialize_with = "from_tz_string")] pub event_timezone: Tz, pub log_path: String, From c855d6e568ce7a40bceb92e3dc694bc81051c251 Mon Sep 17 00:00:00 2001 From: Joey Hines Date: Thu, 9 Jul 2020 22:36:04 -0500 Subject: [PATCH 2/3] Fixed issue w/ events w/ long descriptions + `event_desc` field was too small in the database --- migrations/2020-07-10-032139_bigger_desc_field/down.sql | 2 ++ migrations/2020-07-10-032139_bigger_desc_field/up.sql | 2 ++ src/discord/mod.rs | 3 ++- 3 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 migrations/2020-07-10-032139_bigger_desc_field/down.sql create mode 100644 migrations/2020-07-10-032139_bigger_desc_field/up.sql diff --git a/migrations/2020-07-10-032139_bigger_desc_field/down.sql b/migrations/2020-07-10-032139_bigger_desc_field/down.sql new file mode 100644 index 0000000..a0b6650 --- /dev/null +++ b/migrations/2020-07-10-032139_bigger_desc_field/down.sql @@ -0,0 +1,2 @@ +-- This file should undo anything in `up.sql` +ALTER TABLE events MODIFY event_desc VARCHAR(255) ; \ No newline at end of file diff --git a/migrations/2020-07-10-032139_bigger_desc_field/up.sql b/migrations/2020-07-10-032139_bigger_desc_field/up.sql new file mode 100644 index 0000000..3fee40b --- /dev/null +++ b/migrations/2020-07-10-032139_bigger_desc_field/up.sql @@ -0,0 +1,2 @@ +-- Your SQL goes here +ALTER TABLE events MODIFY event_desc VARCHAR(2050); \ No newline at end of file diff --git a/src/discord/mod.rs b/src/discord/mod.rs index 7adffac..53a99d5 100644 --- a/src/discord/mod.rs +++ b/src/discord/mod.rs @@ -42,7 +42,8 @@ pub fn send_message_to_reaction_users(ctx: &Context, reaction: &Reaction, msg_te let event = match get_event_by_msg_id(db_link, message_id) { Ok(event) => event, - Err(_) => { + Err(e) => { + error!("Error getting event from reaction {}", e); return; } }; From fa1dd3fcde7222ce3af19cad5654512f68b1b00b Mon Sep 17 00:00:00 2001 From: Joey Hines Date: Fri, 10 Jul 2020 09:29:54 -0500 Subject: [PATCH 3/3] Small fixes + Creating "ping_roles" more idiomatically + Updated readme --- README.md | 2 ++ src/discord/mod.rs | 11 ++++------- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index d2fee77..bc07568 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,8 @@ prefix = "~" event_channel = 0 # List of roles that can use the bot event_roles = [0] +# List of roles to ping when a new event is posted +ping_roles = [0] # Timezone to display events, supported timezones can be found at https://docs.rs/chrono-tz/0.5.1/chrono_tz/#modules event_timezone = "America/New_York" # Path to place logs in diff --git a/src/discord/mod.rs b/src/discord/mod.rs index 53a99d5..c7879a6 100644 --- a/src/discord/mod.rs +++ b/src/discord/mod.rs @@ -98,12 +98,9 @@ pub fn send_event_msg( let native_time = utc_time.with_timezone(&config.event_timezone); - let ping_roles = &config.ping_roles; - let mut ping_roles_msg = String::new(); - - for role in ping_roles { - ping_roles_msg.push_str(format!(" <@&{}>", role).as_str()); - } + let ping_roles = config.ping_roles.clone().into_iter().map(|role| { + format!("<@&{}>", role) + }).collect::>().join(" "); // Send message let msg = channel.id().send_message(&http, |m| { @@ -122,7 +119,7 @@ pub fn send_event_msg( .timestamp(utc_time.to_rfc3339()) .field("Location", &event.event_loc, true) .field("Organizer", &event.organizer, true) - }).content(ping_roles_msg) + }).content(ping_roles) })?; if react {