summaryrefslogtreecommitdiff
path: root/src/handlers/event/mod.rs
diff options
context:
space:
mode:
authorseth <[email protected]>2023-11-30 22:18:51 -0500
committerseth <[email protected]>2023-12-01 07:12:49 -0500
commit76c0f94e6d7aa108424b34826eb7d8514b026287 (patch)
tree7315bd6dfe52c158041bed64ba39781718a69335 /src/handlers/event/mod.rs
parentdb52e639b85d79bed870020aec7a045851ca5ee3 (diff)
feat: use eyre, better logging, & refactor
small commits be damned
Diffstat (limited to 'src/handlers/event/mod.rs')
-rw-r--r--src/handlers/event/mod.rs40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/handlers/event/mod.rs b/src/handlers/event/mod.rs
new file mode 100644
index 0000000..09be62b
--- /dev/null
+++ b/src/handlers/event/mod.rs
@@ -0,0 +1,40 @@
+use crate::Data;
+
+use color_eyre::eyre::{Report, Result};
+use poise::serenity_prelude as serenity;
+use poise::{Event, FrameworkContext};
+
+mod message;
+mod pinboard;
+mod reactboard;
+
+pub async fn handle(
+ ctx: &serenity::Context,
+ event: &Event<'_>,
+ framework: FrameworkContext<'_, Data, Report>,
+ data: &Data,
+) -> Result<()> {
+ match event {
+ Event::Ready { data_about_bot } => {
+ log::info!("logged in as {}", data_about_bot.user.name)
+ }
+
+ Event::Message { new_message } => message::handle(ctx, framework, new_message).await?,
+
+ Event::ChannelPinsUpdate { pin } => {
+ if let Some(settings) = &data.settings {
+ pinboard::handle(ctx, pin, settings).await
+ }
+ }
+
+ Event::ReactionAdd { add_reaction } => {
+ if let Some(settings) = &data.settings {
+ reactboard::handle(ctx, add_reaction, settings).await?
+ }
+ }
+
+ _ => {}
+ }
+
+ Ok(())
+}