Removed response target from module response and added to lib.rs
This commit is contained in:
@@ -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()),
|
||||
|
||||
@@ -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
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user