Removed response target from module response and added to lib.rs

This commit is contained in:
2024-03-26 19:35:12 -07:00
parent 9aedf2981b
commit 235bc3f947
6 changed files with 14 additions and 13 deletions

View File

@@ -8,7 +8,7 @@ mod modules;
use modules::{bully, lenny, join_rude, grass, noemo, ttb}; use modules::{bully, lenny, join_rude, grass, noemo, ttb};
type ModuleFunc = fn(regex::Captures, &Message, &VecDeque<Message>)->Option<(String, String)>; type ModuleFunc = fn(regex::Captures, &Message, &VecDeque<Message>)->String;
const NUM_MODS:usize = 5; const NUM_MODS:usize = 5;
@@ -28,7 +28,7 @@ pub fn handle(modules: &Vec<(Regex, ModuleFunc)>, message: &Message, message_buf
match &message.command { match &message.command {
PRIVMSG(_,msg) => for (regex, function) in modules{ PRIVMSG(_,msg) => for (regex, function) in modules{
if let Some(captures) = regex.captures(msg.as_str()) { if let Some(captures) = regex.captures(msg.as_str()) {
return function(captures, message, message_buf); return Some((message.response_target().unwrap_or("#lug").to_string(), function(captures, message, message_buf)));
} }
}, },
JOIN(ref channel,_,_) => return join_rude::join_rude(message.source_nickname().unwrap_or("unknown user"), channel.as_str()), JOIN(ref channel,_,_) => return join_rude::join_rude(message.source_nickname().unwrap_or("unknown user"), channel.as_str()),

View File

@@ -1,5 +1,5 @@
use std::collections::VecDeque; use std::collections::VecDeque;
use irc::proto::Message, use irc::proto::Message;
use rand::prelude::Rng; use rand::prelude::Rng;
@@ -24,14 +24,14 @@ const BULLY_PHRASES:[&str;12] = [
pub const PATTERN: &str = "^\\$bully (?P<nick>[^\\s]+)"; pub const PATTERN: &str = "^\\$bully (?P<nick>[^\\s]+)";
pub fn mod_message(captures: regex::Captures, message: &Message, _message_buf: &VecDeque<Message>) -> Option<(String,String)> { pub fn mod_message(captures: regex::Captures, message: &Message, _message_buf: &VecDeque<Message>) -> String {
let bully_message: String = BULLY_PHRASES[rand::thread_rng().gen_range(0..BULLY_PHRASES.len())].to_string(); let bully_message: String = BULLY_PHRASES[rand::thread_rng().gen_range(0..BULLY_PHRASES.len())].to_string();
let to_be_bullied = captures.get(1).unwrap().as_str(); let to_be_bullied = captures.get(1).unwrap().as_str();
let complete_message = message.source_nickname().unwrap_or("unknown_nick").to_string() + bully_message.as_str() + to_be_bullied; let complete_message = message.source_nickname().unwrap_or("unknown_nick").to_string() + bully_message.as_str() + to_be_bullied;
Some((message.response_target().unwrap_or("#lug").to_string(), complete_message)) complete_message
} }

View File

@@ -3,7 +3,7 @@ use std::collections::VecDeque;
pub const PATTERN: &str = "\\$grass (?P<nick>[^\\s]+)"; pub const PATTERN: &str = "\\$grass (?P<nick>[^\\s]+)";
pub fn touch_grass(captures: regex::Captures, message: &Message, _: &VecDeque<Message>) -> Option<(String, String)> { pub fn touch_grass(captures: regex::Captures, message: &Message, _: &VecDeque<Message>) -> String {
let grass_toucher = captures.get(1).unwrap().as_str(); let grass_toucher = captures.get(1).unwrap().as_str();
@@ -11,5 +11,5 @@ pub fn touch_grass(captures: regex::Captures, message: &Message, _: &VecDeque<Me
message.source_nickname().unwrap_or("unknown_nick").to_string(), message.source_nickname().unwrap_or("unknown_nick").to_string(),
grass_toucher); grass_toucher);
Some((message.response_target().unwrap_or("#lug").to_string(), complete_message.to_string())) complete_message
} }

View File

@@ -7,11 +7,11 @@ pub const PATTERN: &str = "^\\$[Ll]enny\\s*(?P<text>.*)$";
const USAGE: &str = "Usage: ![Ll]enny const USAGE: &str = "Usage: ![Ll]enny
Displays a Lenny face ( ͡° ͜ʖ ͡°)"; Displays a Lenny face ( ͡° ͜ʖ ͡°)";
pub fn mod_message(captures: regex::Captures, message: &Message, _message_buf: &VecDeque<Message>) -> Option<(String,String)> { pub fn mod_message(captures: regex::Captures, message: &Message, _message_buf: &VecDeque<Message>) -> String {
let lenny = LENNYS[rand::thread_rng().gen_range(0..LENNYS.len())].to_string(); let lenny = LENNYS[rand::thread_rng().gen_range(0..LENNYS.len())].to_string();
let text = captures.get(1).unwrap().as_str(); let text = captures.get(1).unwrap().as_str();
Some((message.response_target().unwrap_or("#lug").to_string(),format!("{} {}", lenny, text))) format!("{} {}", lenny, text)
} }
pub fn usage(message: &Message) -> (String,String) { pub fn usage(message: &Message) -> (String,String) {

View File

@@ -3,11 +3,12 @@ use std::collections::VecDeque;
pub const PATTERN: &str = "\\$noemo (?P<nick>[^\\s]+)"; pub const PATTERN: &str = "\\$noemo (?P<nick>[^\\s]+)";
pub fn no_emo(captures: regex::Captures, message: &Message, _: &VecDeque<Message>) -> Option<(String, String)> { pub fn no_emo(captures: regex::Captures, message: &Message, _: &VecDeque<Message>) -> String {
let emo_person = captures.get(1).unwrap().as_str(); let emo_person = captures.get(1).unwrap().as_str();
let complete_message = format!("{} thinks you shouldn't be so emo, {}. Take a deep breath and lighten up", let complete_message = format!("{} thinks you shouldn't be so emo, {}. Take a deep breath and lighten up",
message.source_nickname().unwrap_or("unknown_nick").to_string(), message.source_nickname().unwrap_or("unknown_nick").to_string(),
emo_person); emo_person);
Some((message.response_target().unwrap_or("#lug").to_string(), complete_message)) complete_message
} }

View File

@@ -5,7 +5,7 @@ use chrono::{prelude::*, TimeDelta};
pub const PATTERN: &str = "^\\$ttb\\s*$"; pub const PATTERN: &str = "^\\$ttb\\s*$";
pub fn time_to_baby(_: regex::Captures, message: &Message, _: &VecDeque<Message>) -> Option<(String, String)> { pub fn time_to_baby(_: regex::Captures, message: &Message, _: &VecDeque<Message>) -> String {
let local_time: DateTime<Local> = Local::now(); let local_time: DateTime<Local> = Local::now();
let birth_time: DateTime<Local> = Local.with_ymd_and_hms(2024, 10, 17, 00, 00, 00).unwrap(); let birth_time: DateTime<Local> = Local.with_ymd_and_hms(2024, 10, 17, 00, 00, 00).unwrap();
@@ -21,5 +21,5 @@ pub fn time_to_baby(_: regex::Captures, message: &Message, _: &VecDeque<Message>
} }
Some((message.response_target().unwrap_or("#lug").to_string(), completed_message)) completed_message
} }