From a0bfd5531c719543efd1d5a2258256141f640d71 Mon Sep 17 00:00:00 2001 From: liyunze <50455574+liyunze-coding@users.noreply.github.com> Date: Sun, 9 Aug 2026 21:43:53 +1000 Subject: [PATCH] added leetcode thread creation --- src/events/message.rs | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/src/events/message.rs b/src/events/message.rs index b01402d..3cb05b2 100644 --- a/src/events/message.rs +++ b/src/events/message.rs @@ -3,10 +3,7 @@ use ::serenity::model::id::{ChannelId, GuildId}; use dotenv::dotenv; use poise::serenity_prelude as serenity; -async fn honeypot( - ctx: &serenity::Context, - new_message: &serenity::Message -) -> Result<(), Error> { +async fn honeypot(ctx: &serenity::Context, new_message: &serenity::Message) -> Result<(), Error> { dotenv().ok(); // check if it's the honeypot channel let discord_guild_id = std::env::var("GUILD_ID") @@ -49,11 +46,34 @@ async fn honeypot( Ok(()) } +async fn create_leetcode_thread( + ctx: &serenity::Context, + new_message: &serenity::Message, +) -> Result<(), Error> { + dotenv().ok(); + + let leetcode_channel_id_env = std::env::var("LEETCODE_CHANNEL_ID") + .expect("missing LEETCODE_CHANNEL_ID") + .parse::() + .expect("Invalid LEETCODE_CHANNEL_ID value"); + + let leetcode_channel_id = ChannelId::new(leetcode_channel_id_env); + + let current_channel_id = &new_message.channel_id; + + if leetcode_channel_id.eq(current_channel_id) { + let new_thread = serenity::CreateThread::new("🧠 DSEC LeetCode Challenge Answers"); + current_channel_id.create_thread_from_message(ctx, new_message.id, new_thread).await?; + }; + + Ok(()) +} + pub async fn on_message( ctx: &serenity::Context, new_message: &serenity::Message, ) -> Result<(), Error> { let _ = honeypot(ctx, new_message).await?; - + let _ = create_leetcode_thread(ctx, new_message).await?; Ok(()) }