summaryrefslogtreecommitdiff
path: root/src/handlers/event/message.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/message.rs
parentdb52e639b85d79bed870020aec7a045851ca5ee3 (diff)
feat: use eyre, better logging, & refactor
small commits be damned
Diffstat (limited to 'src/handlers/event/message.rs')
-rw-r--r--src/handlers/event/message.rs35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/handlers/event/message.rs b/src/handlers/event/message.rs
new file mode 100644
index 0000000..a84ec59
--- /dev/null
+++ b/src/handlers/event/message.rs
@@ -0,0 +1,35 @@
+use crate::{consts, utils, Data};
+
+use color_eyre::eyre::{Report, Result};
+use log::*;
+use poise::serenity_prelude::{Context, Message};
+use poise::FrameworkContext;
+
+pub async fn handle(
+ ctx: &Context,
+ framework: FrameworkContext<'_, Data, Report>,
+ msg: &Message,
+) -> Result<()> {
+ if should_echo(framework, msg) {
+ msg.reply(ctx, &msg.content).await?;
+ }
+
+ Ok(())
+}
+
+fn should_echo(framework: FrameworkContext<'_, Data, Report>, msg: &Message) -> bool {
+ let gid = msg.guild_id.unwrap_or_default();
+ if msg.author.id == framework.bot_id || !utils::is_guild_allowed(gid) {
+ info!("not running copypasta command in {gid}");
+ return false;
+ }
+
+ let content = &msg.content;
+
+ content == "🗿"
+ || consts::TEAMOJIS.contains(&content.as_str())
+ || content.to_ascii_lowercase() == "moyai"
+ || content
+ .to_ascii_lowercase()
+ .contains("twitter's recommendation algorithm")
+}