---------------------------------------------------------------------
-- File: LibBadWords.lua
-- Author: enderneko (enderneko-dev@outlook.com)
-- Created : 2024-10-05 16:04 +08:00
-- Modified: 2024-10-05 17:31 +08:00
---------------------------------------------------------------------

local MAJOR, MINOR = "LibBadWords", 1
local lib = LibStub:NewLibrary(MAJOR, MINOR)
if not lib then return end -- already loaded

lib.callbacks = LibStub("CallbackHandler-1.0"):New(lib)
if not lib.callbacks then error(MAJOR.." requires CallbackHandler") end

local BAD_WORDS

---------------------------------------------------------------------
-- contains
---------------------------------------------------------------------
function lib.ContainsBadWords(text)
    text = strlower(text)
    for _, bad in pairs(BAD_WORDS) do
        if strfind(text, bad) then
            return true
        end
    end
end

---------------------------------------------------------------------
-- bad words list
---------------------------------------------------------------------
BAD_WORDS = {
    "4r5e",
    "5h1t",
    "5hit",
    "a55",
    "abortion",
    "anal",
    "anus",
    "ar5e",
    "asshole",
    "asswhole",
    "b!tch",
    "b00bs",
    "b1tch",
    "balls",
    "ballsack",
    "bastard",
    "beastial",
    "bellend",
    "bestial",
    "bi+ch",
    "biatch",
    "bitch",
    "blowjob",
    "boner",
    "boob",
    "breasts",
    "butt",
    "butthole",
    "buttmuch",
    "buttplug",
    "c0ck",
    "c0cksucker",
    "carpet muncher",
    "cawk",
    "chink",
    "cipa",
    "cl1t",
    "clit",
    "clitoris",
    "clits",
    "cnut",
    "cock",
    "cockface",
    "cockhead",
    "cockmunch",
    "cocks",
    "cocksuck",
    "cok",
    "coksucka",
    "coon",
    "cox",
    "crap",
    "cum",
    "cunilingus",
    "cunillingus",
    "cunnilingus",
    "cunt",
    "cyalis",
    "cyberfuck",
    "d1ck",
    "dick",
    "dickhead",
    "dildo",
    "dlck",
    "doggin",
    "dogging",
    "donkeyribber",
    "dyke",
    "ejaculate",
    "ejakulate",
    "f u c k",
    "f4nny",
    "fag",
    "fanny",
    "fanyy",
    "fatass",
    "fcuk",
    "feck",
    "felching",
    "fellate",
    "fellatio",
    "flange",
    "fook",
    "fuck",
    "fudgepacker",
    "fuk",
    "fux",
    "fux0r",
    "f_u_c_k",
    "gangbang",
    "gaylord",
    "gaysex",
    "goatse",
    "goddamn",
    "hardcoresex",
    "hell",
    "hoar",
    "hoare",
    "hoer",
    "homo",
    "hore",
    "horniest",
    "horny",
    "hotsex",
    "jack-off",
    "jackoff",
    "jap",
    "jerk-off",
    "jism",
    "kawk",
    "knob",
    "kock",
    "kondum",
    "kum",
    "kunilingus",
    "l3i+ch",
    "l3itch",
    "labia",
    "m0f0",
    "m0fo",
    "m45terbate",
    "ma5terb8",
    "ma5terbate",
    "masochist",
    "masterb8",
    "masterbat",
    "masturbate",
    "mo-fo",
    "mof0",
    "mofo",
    "mothafuck",
    "mother fucker",
    "motherfuck",
    "muff",
    "mutha",
    "muther",
    "n1gga",
    "n1gger",
    "nazi",
    "nigg3r",
    "nigg4h",
    "nigga",
    "nigger",
    "nobhead",
    "nobjocky",
    "nobjokey",
    "numbnuts",
    "nutsack",
    "orgasim",
    "orgasm",
    "p0rn",
    "pawn",
    "pecker",
    "penis",
    "phuck",
    "phuk",
    "phuks",
    "phuq",
    "pimpis",
    "poop",
    "porn",
    "prick",
    "pron",
    "pube",
    "pusse",
    "pussi",
    "pussies",
    "pussy",
    "rape",
    "rapist",
    "rectum",
    "retard",
    "rimjaw",
    "rimming",
    "s.o.b.",
    "sadist",
    "schlong",
    "screwing",
    "scroat",
    "scrote",
    "scrotum",
    "semen",
    "sex",
    "sh!+",
    "sh!t",
    "sh1t",
    "shag",
    "shagger",
    "shaggin",
    "shemale",
    "shi+",
    "shit",
    "skank",
    "slut",
    "smegma",
    "smut",
    "snatch",
    "son-of-a-bitch",
    "spac",
    "spunk",
    "s_h_i_t",
    "t1tt1e5",
    "t1tties",
    "teets",
    "teez",
    "testical",
    "testicle",
    "tittie5",
    "titties",
    "titty",
    "turd",
    "tw4t",
    "twat",
    "twunt",
    "v14gra",
    "v1gra",
    "vagina",
    "viagra",
    "vulva",
    "w00se",
    "wang",
    "wank",
    "whore",
    "willy",
    "xrated",
    "xxx",
}