diff --git a/.gitignore b/.gitignore index 0b745e2..9d85b1c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /target -.env \ No newline at end of file +.env +.env.* diff --git a/src/events/message.rs b/src/events/message.rs index 3cb05b2..47a68a9 100644 --- a/src/events/message.rs +++ b/src/events/message.rs @@ -62,8 +62,30 @@ async fn create_leetcode_thread( 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?; + fn create_title_from_message(message: impl Into) -> String { + let message_string: String = message.into(); + + let title = message_string + .lines() + .next() + .map(|line| { + let start = line + .char_indices() + .nth(2) + .map(|(i, _)| i) + .unwrap_or(line.len()); + &line[start..] + }) + .unwrap_or("") + .to_string(); + title + } + + let new_thread = + serenity::CreateThread::new(create_title_from_message(&new_message.content)); + current_channel_id + .create_thread_from_message(ctx, new_message.id, new_thread) + .await?; }; Ok(())