@ -7,7 +7,16 @@ use regex::{Regex, RegexBuilder};
lazy_static ! {
static ref EMAIL_REGEX : Regex = Regex ::new ( r"^[a-zA-Z0-9.!#$%&’ *+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$").expect("compile regex" ) ;
static ref SLUR_REGEX : Regex = RegexBuilder ::new ( r"(fag(g|got|tard)?\b|cock\s?sucker(s|ing)?|ni((g{2,}|q)+|[gq]{2,})[e3r]+(s|z)?|mudslime?s?|kikes?|\bspi(c|k)s?\b|\bchinks?|gooks?|bitch(es|ing|y)?|whor(es?|ing)|\btr(a|@)nn?(y|ies?)|\b(b|re|r)tard(ed)?s?)").case_insensitive(true).build().expect("compile regex" ) ;
static ref SLUR_REGEX : Regex = {
let mut slurs = r"(fag(g|got|tard)?\b|cock\s?sucker(s|ing)?|ni((g{2,}|q)+|[gq]{2,})[e3r]+(s|z)?|mudslime?s?|kikes?|\bspi(c|k)s?\b|\bchinks?|gooks?|bitch(es|ing|y)?|whor(es?|ing)|\btr(a|@)nn?(y|ies?)|\b(b|re|r)tard(ed)?s?)" . to_string ( ) ;
if let Some ( additional_slurs ) = Settings ::get ( ) . additional_slurs {
slurs . push ( '|' ) ;
slurs . push_str ( & additional_slurs ) ;
} ;
RegexBuilder ::new ( & & slurs ) . case_insensitive ( true ) . build ( ) . expect ( "compile regex" )
} ;
static ref USERNAME_MATCHES_REGEX : Regex = Regex ::new ( r"/u/[a-zA-Z][0-9a-zA-Z_]*").expect("compile regex" ) ;
// TODO keep this old one, it didn't work with port well tho
// static ref MENTIONS_REGEX: Regex = Regex::new(r"@(?P<name>[\w.]+)@(?P<domain>[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)").expect("compile regex");