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};
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;
@@ -28,7 +28,7 @@ pub fn handle(modules: &Vec<(Regex, ModuleFunc)>, message: &Message, message_buf
match &message.command {
PRIVMSG(_,msg) => for (regex, function) in modules{
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()),

View File

@@ -1,5 +1,5 @@
use std::collections::VecDeque;
use irc::proto::Message,
use irc::proto::Message;
use rand::prelude::Rng;
@@ -24,14 +24,14 @@ const BULLY_PHRASES:[&str;12] = [
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 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;
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 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();
@@ -11,5 +11,5 @@ pub fn touch_grass(captures: regex::Captures, message: &Message, _: &VecDeque<Me
message.source_nickname().unwrap_or("unknown_nick").to_string(),
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
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 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) {

View File

@@ -3,11 +3,12 @@ use std::collections::VecDeque;
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 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(),
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 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 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
}