Added noemo and grass

This commit is contained in:
2024-03-26 19:30:44 -07:00
parent b9267ed43f
commit 9aedf2981b
4 changed files with 34 additions and 3 deletions

View File

@@ -6,13 +6,13 @@ use regex::Regex;
//is this the best way to do this? probably not
mod modules;
use modules::{bully, lenny, join_rude};
use modules::{bully, lenny, join_rude, grass, noemo, ttb};
type ModuleFunc = fn(regex::Captures, &Message, &VecDeque<Message>)->Option<(String, String)>;
const NUM_MODS:usize = 2;
const NUM_MODS:usize = 5;
const MODULES: [(&str, ModuleFunc);NUM_MODS] = [(lenny::PATTERN, lenny::mod_message), (bully::PATTERN, bully::mod_message)];
const MODULES: [(&str, ModuleFunc);NUM_MODS] = [(lenny::PATTERN, lenny::mod_message), (bully::PATTERN, bully::mod_message), (grass::PATTERN, grass::touch_grass), (noemo::PATTERN, noemo::no_emo), (ttb::PATTERN, ttb::time_to_baby)];
pub fn build_modules() -> Result<Vec<(Regex, ModuleFunc)>, regex::Error> {
let mut regex_array: Vec<(Regex, ModuleFunc)> = Vec::with_capacity(NUM_MODS);

15
src/modules/grass.rs Normal file
View File

@@ -0,0 +1,15 @@
use irc::proto::Message;
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)> {
let grass_toucher = captures.get(1).unwrap().as_str();
let complete_message = format!("{} thinks you should go outside and touch some grass, {}",
message.source_nickname().unwrap_or("unknown_nick").to_string(),
grass_toucher);
Some((message.response_target().unwrap_or("#lug").to_string(), complete_message.to_string()))
}

View File

@@ -1,4 +1,7 @@
pub mod bully;
pub mod lenny;
pub mod join_rude;
pub mod grass;
pub mod ttb;
pub mod noemo;

13
src/modules/noemo.rs Normal file
View File

@@ -0,0 +1,13 @@
use irc::proto::Message;
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)> {
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))
}