diff --git a/packages/glin-profanity/.npmignore b/packages/glin-profanity/.npmignore new file mode 100644 index 0000000..3a1fb54 --- /dev/null +++ b/packages/glin-profanity/.npmignore @@ -0,0 +1,8 @@ +src/ +node_modules/ +*.test.* +*.spec.* +*.log +*.md +tsconfig.json +.npmignore diff --git a/packages/glin-profanity/lib/data/Norwegian.json b/packages/glin-profanity/lib/data/Norwegian.json new file mode 100644 index 0000000..d6dffab --- /dev/null +++ b/packages/glin-profanity/lib/data/Norwegian.json @@ -0,0 +1,17 @@ +{ + "words": [ + "drittsekk", + "faen i helvete", + "fitte", + "jævla", + "kuk", + "kukene", + "kuker", + "nigger", + "pikk", + "sotrør", + "ståpikk", + "ståpikkene", + "ståpikker" + ] +} diff --git a/packages/glin-profanity/lib/data/arabic.json b/packages/glin-profanity/lib/data/arabic.json new file mode 100644 index 0000000..55ec12a --- /dev/null +++ b/packages/glin-profanity/lib/data/arabic.json @@ -0,0 +1,157 @@ +{ + "words": [ + "سكس", + "طيز", + "شرج", + "لعق", + "لحس", + "تمص", + "بيضان", + "ثدي", + "بز", + "حلمة", + "مفلقسة", + "بظر", + "كس", + "مبادل", + "عاهرة", + "جماع", + "قضيب", + "زب", + "لوطي", + "لواط", + "سحاق", + "اغتصاب", + "خنثي", + "احتلام", + "نيك", + "متناك", + "شرموطة", + "عرص", + "خول", + "قحبة", + "لبوة", + "وسخ", + "علق", + "ناك", + "منيك", + "شرمط", + "قحب", + "شرموط", + "خول", + "هنيك", + "فحل", + "ديوث", + "متناك", + "هايج", + "زبر", + "bdsm", + "زان", + "سادي", + "سادى", + "كسها", + "كسي", + "كسك", + "كسم", + "بنتاك", + "بتناك", + "نيكني", + "ديوث", + "نياك", + "فشاخ", + "فشخ", + "هفشخك", + "شذوذ", + "لواط", + "لوطي", + "لوطى", + "عاهر", + "لحس", + "متع", + "حمام", + "هربط", + "دياث", + "سحاق", + "جنس", + "جنس", + "جوزي", + "مراتي", + "مراتى", + "مرات", + "ورا", + "شعر", + "مشعر", + "اركب", + "فرس", + "جاد", + "منيوك", + "زوبر", + "طياز", + "شراميط", + "فاجر", + "محروم", + "واقف", + "بيحك", + "ممحونة", + "لبن", + "لبو", + "واقف", + "شرقان", + "افضي", + "دهولت", + "bzaz", + "nek", + "nik", + "mtnak", + "zeb", + "zep", + "zobr", + "zopr", + "kos", + "a7a", + "hayg", + "لبوه", + "لبوة", + "لبوت", + "sharma", + "banoty", + "بنوتي", + "بنوتى", + "سلب", + "عايز", + "دكر", + "نتاية", + "نتايه", + "زنج", + "ممحون", + "تعبان", + "اقعد", + "بزاز", + "هيجان", + "سافل", + "مصيهولي", + "هتمص", + "مصي", + "بز", + "hayg", + "كلوت", + "اندر", + "سنتيا", + "بوكسر", + "بتاع", + "مشتهي", + "زبى", + "نكته", + "اتناك", + "nayak", + "nyak", + "neeek", + "اغتصا", + "زب", + "كس", + "بلكيشن", + "كيشن", + "ليسبيان", + "سبيان" + ] +} diff --git a/packages/glin-profanity/lib/data/chinese.json b/packages/glin-profanity/lib/data/chinese.json new file mode 100644 index 0000000..fc52758 --- /dev/null +++ b/packages/glin-profanity/lib/data/chinese.json @@ -0,0 +1,298 @@ +{ + "words": [ + "13.", + "13点", + "三级片", + "下三烂", + "下贱", + "个老子的", + "九游", + "乳", + "乳交", + "乳头", + "乳房", + "乳波臀浪", + "交配", + "仆街", + "他奶奶", + "他奶奶的", + "他奶娘的", + "他妈", + "他妈ㄉ王八蛋", + "他妈地", + "他妈的", + "他娘", + "他马的", + "你个傻比", + "你他马的", + "你全家", + "你奶奶的", + "你她马的", + "你妈", + "你妈的", + "你娘", + "你娘卡好", + "你娘咧", + "你它妈的", + "你它马的", + "你是鸡", + "你是鸭", + "你马的", + "做爱", + "傻比", + "傻逼", + "册那", + "军妓", + "几八", + "几叭", + "几巴", + "几芭", + "刚度", + "刚瘪三", + "包皮", + "十三点", + "卖B", + "卖比", + "卖淫", + "卵", + "卵子", + "双峰微颤", + "口交", + "口肯", + "叫床", + "吃屎", + "后庭", + "吹箫", + "塞你公", + "塞你娘", + "塞你母", + "塞你爸", + "塞你老师", + "塞你老母", + "处女", + "外阴", + "大卵子", + "大卵泡", + "大鸡巴", + "奶", + "奶奶的熊", + "奶子", + "奸", + "奸你", + "她妈地", + "她妈的", + "她马的", + "妈B", + "妈个B", + "妈个比", + "妈个老比", + "妈妈的", + "妈比", + "妈的", + "妈的B", + "妈逼", + "妓", + "妓女", + "妓院", + "妳她妈的", + "妳妈的", + "妳娘的", + "妳老母的", + "妳马的", + "姘头", + "姣西", + "姦", + "娘个比", + "娘的", + "婊子", + "婊子养的", + "嫖娼", + "嫖客", + "它妈地", + "它妈的", + "密洞", + "射你", + "射精", + "小乳头", + "小卵子", + "小卵泡", + "小瘪三", + "小肉粒", + "小骚比", + "小骚货", + "小鸡巴", + "小鸡鸡", + "屁眼", + "屁股", + "屄", + "屌", + "巨乳", + "干x娘", + "干七八", + "干你", + "干你妈", + "干你娘", + "干你老母", + "干你良", + "干妳妈", + "干妳娘", + "干妳老母", + "干妳马", + "干您娘", + "干机掰", + "干死CS", + "干死GM", + "干死你", + "干死客服", + "幹", + "强奸", + "强奸你", + "性", + "性交", + "性器", + "性无能", + "性爱", + "情色", + "想上你", + "懆您妈", + "懆您娘", + "懒8", + "懒八", + "懒叫", + "懒教", + "成人", + "我操你祖宗十八代", + "扒光", + "打炮", + "打飞机", + "抽插", + "招妓", + "插你", + "插死你", + "撒尿", + "操你", + "操你全家", + "操你奶奶", + "操你妈", + "操你娘", + "操你祖宗", + "操你老妈", + "操你老母", + "操妳", + "操妳全家", + "操妳妈", + "操妳娘", + "操妳祖宗", + "操机掰", + "操比", + "操逼", + "放荡", + "日他娘", + "日你", + "日你妈", + "日你老娘", + "日你老母", + "日批", + "月经", + "机八", + "机巴", + "机机歪歪", + "杂种", + "浪叫", + "淫", + "淫乱", + "淫妇", + "淫棍", + "淫水", + "淫秽", + "淫荡", + "淫西", + "湿透的内裤", + "激情", + "灨你娘", + "烂货", + "烂逼", + "爛", + "狗屁", + "狗日", + "狗狼养的", + "玉杵", + "王八蛋", + "瓜娃子", + "瓜婆娘", + "瓜批", + "瘪三", + "白烂", + "白痴", + "白癡", + "祖宗", + "私服", + "笨蛋", + "精子", + "老二", + "老味", + "老母", + "老瘪三", + "老骚比", + "老骚货", + "肉壁", + "肉棍子", + "肉棒", + "肉缝", + "肏", + "肛交", + "肥西", + "色情", + "花柳", + "荡妇", + "賤", + "贝肉", + "贱B", + "贱人", + "贱货", + "贼你妈", + "赛你老母", + "赛妳阿母", + "赣您娘", + "轮奸", + "迷药", + "逼", + "逼样", + "野鸡", + "阳具", + "阳萎", + "阴唇", + "阴户", + "阴核", + "阴毛", + "阴茎", + "阴道", + "阴部", + "雞巴", + "靠北", + "靠母", + "靠爸", + "靠背", + "靠腰", + "驶你公", + "驶你娘", + "驶你母", + "驶你爸", + "驶你老师", + "驶你老母", + "骚比", + "骚货", + "骚逼", + "鬼公", + "鸡8", + "鸡八", + "鸡叭", + "鸡吧", + "鸡奸", + "鸡巴", + "鸡芭", + "鸡鸡", + "龟儿子", + "龟头" + ] +} diff --git a/packages/glin-profanity/lib/data/czech.json b/packages/glin-profanity/lib/data/czech.json new file mode 100644 index 0000000..6300e7b --- /dev/null +++ b/packages/glin-profanity/lib/data/czech.json @@ -0,0 +1,45 @@ +{ + "words": [ + "bordel", + "buzna", + "čumět", + "čurák", + "debil", + "do piče", + "do prdele", + "dršťka", + "držka", + "flundra", + "hajzl", + "hovno", + "chcanky", + "chuj", + "jebat", + "kokot", + "kokotina", + "koňomrd", + "kunda", + "kurva", + "mamrd", + "mrdat", + "mrdka", + "mrdník", + "oslošoust", + "piča", + "píčus", + "píchat", + "pizda", + "prcat", + "prdel", + "prdelka", + "sračka", + "srát", + "šoustat", + "šulin", + "vypíčenec", + "zkurvit", + "zkurvysyn", + "zmrd", + "žrát" + ] +} diff --git a/packages/glin-profanity/lib/data/danish.json b/packages/glin-profanity/lib/data/danish.json new file mode 100644 index 0000000..bd6fcc0 --- /dev/null +++ b/packages/glin-profanity/lib/data/danish.json @@ -0,0 +1,24 @@ +{ + "words": [ + "anus", + "bøsserøv", + "cock", + "fisse", + "fissehår", + "fuck", + "hestepik", + "kussekryller", + "lort", + "luder", + "pik", + "pikhår", + "pikslugeri", + "piksutteri", + "pis", + "røv", + "røvhul", + "røvskæg", + "røvspræke", + "shit" + ] +} diff --git a/packages/glin-profanity/lib/data/dictionary.d.ts b/packages/glin-profanity/lib/data/dictionary.d.ts new file mode 100644 index 0000000..f372dba --- /dev/null +++ b/packages/glin-profanity/lib/data/dictionary.d.ts @@ -0,0 +1,26 @@ +declare const _default: { + arabic: string[]; + chinese: string[]; + czech: string[]; + danish: string[]; + english: string[]; + esperanto: string[]; + finnish: string[]; + french: string[]; + german: string[]; + hindi: string[]; + hungarian: string[]; + italian: string[]; + japanese: string[]; + korean: string[]; + norwegian: string[]; + persian: string[]; + polish: string[]; + portuguese: string[]; + russian: string[]; + turkish: string[]; + swedish: string[]; + thai: string[]; +}; +export default _default; +//# sourceMappingURL=dictionary.d.ts.map \ No newline at end of file diff --git a/packages/glin-profanity/lib/data/dictionary.d.ts.map b/packages/glin-profanity/lib/data/dictionary.d.ts.map new file mode 100644 index 0000000..ef026c7 --- /dev/null +++ b/packages/glin-profanity/lib/data/dictionary.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"dictionary.d.ts","sourceRoot":"","sources":["../../src/data/dictionary.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAsBA,wBAuBE"} \ No newline at end of file diff --git a/packages/glin-profanity/lib/data/dictionary.js b/packages/glin-profanity/lib/data/dictionary.js new file mode 100644 index 0000000..17ae5fb --- /dev/null +++ b/packages/glin-profanity/lib/data/dictionary.js @@ -0,0 +1,47 @@ +import Arabic from './arabic.json'; +import Chinese from './chinese.json'; +import Czech from './czech.json'; +import Danish from './danish.json'; +import Esperanto from './esperanto.json'; +import English from './english.json'; +import Finnish from './finnish.json'; +import German from './german.json'; +import Hindi from './hindi.json'; +import Hungarian from './hungarian.json'; +import Korean from './korean.json'; +import Norwegian from './Norwegian.json'; +import Persian from './persian.json'; +import Polish from './polish.json'; +import Portuguese from './portuguese.json'; +import Russian from './russian.json'; +import French from './french.json'; +import Italian from './italian.json'; +import Japanese from './japanese.json'; +import Turkish from './turkish.json'; +import Swedish from './swedish.json'; +import Thai from './thai.json'; +export default { + arabic: Arabic.words, + chinese: Chinese.words, + czech: Czech.words, + danish: Danish.words, + english: English.words, + esperanto: Esperanto.words, + finnish: Finnish.words, + french: French.words, + german: German.words, + hindi: Hindi.words, + hungarian: Hungarian.words, + italian: Italian.words, + japanese: Japanese.words, + korean: Korean.words, + norwegian: Norwegian.words, + persian: Persian.words, + polish: Polish.words, + portuguese: Portuguese.words, + russian: Russian.words, + turkish: Turkish.words, + swedish: Swedish.words, + thai: Thai.words, +}; +//# sourceMappingURL=dictionary.js.map \ No newline at end of file diff --git a/packages/glin-profanity/lib/data/dictionary.js.map b/packages/glin-profanity/lib/data/dictionary.js.map new file mode 100644 index 0000000..4579a1f --- /dev/null +++ b/packages/glin-profanity/lib/data/dictionary.js.map @@ -0,0 +1 @@ +{"version":3,"file":"dictionary.js","sourceRoot":"","sources":["../../src/data/dictionary.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,KAAK,MAAM,cAAc,CAAC;AACjC,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,KAAK,MAAM,cAAc,CAAC;AACjC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAC3C,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,IAAI,MAAM,aAAa,CAAC;AAC/B,eAAe;IACb,MAAM,EAAE,MAAM,CAAC,KAAK;IACpB,OAAO,EAAE,OAAO,CAAC,KAAK;IACtB,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,MAAM,EAAE,MAAM,CAAC,KAAK;IACpB,OAAO,EAAE,OAAO,CAAC,KAAK;IACtB,SAAS,EAAE,SAAS,CAAC,KAAK;IAC1B,OAAO,EAAE,OAAO,CAAC,KAAK;IACtB,MAAM,EAAE,MAAM,CAAC,KAAK;IACpB,MAAM,EAAE,MAAM,CAAC,KAAK;IACpB,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,SAAS,EAAE,SAAS,CAAC,KAAK;IAC1B,OAAO,EAAE,OAAO,CAAC,KAAK;IACtB,QAAQ,EAAE,QAAQ,CAAC,KAAK;IACxB,MAAM,EAAE,MAAM,CAAC,KAAK;IACpB,SAAS,EAAE,SAAS,CAAC,KAAK;IAC1B,OAAO,EAAE,OAAO,CAAC,KAAK;IACtB,MAAM,EAAE,MAAM,CAAC,KAAK;IACpB,UAAU,EAAE,UAAU,CAAC,KAAK;IAC5B,OAAO,EAAE,OAAO,CAAC,KAAK;IACtB,OAAO,EAAE,OAAO,CAAC,KAAK;IACtB,OAAO,EAAE,OAAO,CAAC,KAAK;IACtB,IAAI,EAAE,IAAI,CAAC,KAAK;CACjB,CAAC"} \ No newline at end of file diff --git a/packages/glin-profanity/lib/data/english.json b/packages/glin-profanity/lib/data/english.json new file mode 100644 index 0000000..a8e21f0 --- /dev/null +++ b/packages/glin-profanity/lib/data/english.json @@ -0,0 +1,382 @@ +{ + "words": [ + "testbad01", + "2g1c", + "2 girls 1 cup", + "acrotomophilia", + "alabama hot pocket", + "alaskan pipeline", + "anal", + "anilingus", + "anus", + "apeshit", + "arsehole", + "ass", + "asshole", + "assmunch", + "auto erotic", + "autoerotic", + "babeland", + "baby batter", + "baby juice", + "ball gag", + "ball gravy", + "ball kicking", + "ball licking", + "ball sack", + "ball sucking", + "bangbros", + "bareback", + "barely legal", + "barenaked", + "bastard", + "bastardo", + "bastinado", + "bbw", + "bdsm", + "beaner", + "beaners", + "beaver cleaver", + "beaver lips", + "bestiality", + "big black", + "big breasts", + "big knockers", + "big tits", + "bimbos", + "birdlock", + "bitch", + "bitches", + "black cock", + "blonde action", + "blonde on blonde action", + "blowjob", + "blow job", + "blow your load", + "blue waffle", + "blumpkin", + "bollocks", + "bondage", + "boner", + "boob", + "boobs", + "booty call", + "brown showers", + "brunette action", + "bukkake", + "bulldyke", + "bullet vibe", + "bullshit", + "bung hole", + "bunghole", + "busty", + "butt", + "buttcheeks", + "butthole", + "camel toe", + "camgirl", + "camslut", + "camwhore", + "carpet muncher", + "carpetmuncher", + "chocolate rosebuds", + "circlejerk", + "cleveland steamer", + "clit", + "clitoris", + "clover clamps", + "clusterfuck", + "cock", + "cocks", + "coprolagnia", + "coprophilia", + "cornhole", + "coon", + "coons", + "creampie", + "cum", + "cumming", + "cunnilingus", + "cunt", + "darkie", + "date rape", + "daterape", + "deep throat", + "deepthroat", + "dendrophilia", + "dick", + "dildo", + "dingleberry", + "dingleberries", + "dirty pillows", + "dirty sanchez", + "doggie style", + "doggiestyle", + "doggy style", + "doggystyle", + "dog style", + "dolcett", + "domination", + "dominatrix", + "dommes", + "donkey punch", + "double dong", + "double penetration", + "dp action", + "dry hump", + "dvda", + "eat my ass", + "ecchi", + "ejaculation", + "erotic", + "erotism", + "escort", + "eunuch", + "faggot", + "fecal", + "felch", + "fellatio", + "feltch", + "female squirting", + "femdom", + "figging", + "fingerbang", + "fingering", + "fisting", + "foot fetish", + "footjob", + "frotting", + "fuck", + "fuck buttons", + "fuckin", + "fucking", + "fucktards", + "fudge packer", + "fudgepacker", + "futanari", + "gang bang", + "gay sex", + "genitals", + "giant cock", + "girl on", + "girl on top", + "girls gone wild", + "goatcx", + "goatse", + "god damn", + "gokkun", + "golden shower", + "goodpoop", + "goo girl", + "goregasm", + "grope", + "group sex", + "g-spot", + "guro", + "hand job", + "handjob", + "hard core", + "hardcore", + "hentai", + "homoerotic", + "honkey", + "hooker", + "hot carl", + "hot chick", + "how to kill", + "how to murder", + "huge fat", + "humping", + "incest", + "intercourse", + "jack off", + "jail bait", + "jailbait", + "jelly donut", + "jerk off", + "jigaboo", + "jiggaboo", + "jiggerboo", + "jizz", + "juggs", + "kike", + "kinbaku", + "kinkster", + "kinky", + "knobbing", + "leather restraint", + "leather straight jacket", + "lemon party", + "lolita", + "lovemaking", + "make me come", + "male squirting", + "masturbate", + "menage a trois", + "milf", + "missionary position", + "motherfucker", + "mound of venus", + "mr hands", + "muff diver", + "muffdiving", + "nambla", + "nawashi", + "negro", + "neonazi", + "nigga", + "nigger", + "nig nog", + "nimphomania", + "nipple", + "nipples", + "nsfw images", + "nude", + "nudity", + "nympho", + "nymphomania", + "octopussy", + "omorashi", + "one cup two girls", + "one guy one jar", + "orgasm", + "orgy", + "paedophile", + "paki", + "panties", + "panty", + "pedobear", + "pedophile", + "pegging", + "penis", + "phone sex", + "piece of shit", + "pissing", + "piss pig", + "pisspig", + "playboy", + "pleasure chest", + "pole smoker", + "ponyplay", + "poof", + "poon", + "poontang", + "punany", + "poop chute", + "poopchute", + "porn", + "porno", + "pornography", + "prince albert piercing", + "pthc", + "pubes", + "pussy", + "queaf", + "queef", + "quim", + "raghead", + "raging boner", + "rape", + "raping", + "rapist", + "rectum", + "reverse cowgirl", + "rimjob", + "rimming", + "rosy palm", + "rosy palm and her 5 sisters", + "rusty trombone", + "sadism", + "santorum", + "scat", + "schlong", + "scissoring", + "semen", + "sex", + "sexo", + "sexy", + "shaved beaver", + "shaved pussy", + "shemale", + "shibari", + "shit", + "shitblimp", + "shitty", + "shota", + "shrimping", + "skeet", + "slanteye", + "slut", + "s&m", + "smut", + "snatch", + "snowballing", + "sodomize", + "sodomy", + "spic", + "splooge", + "splooge moose", + "spooge", + "spread legs", + "spunk", + "strap on", + "strapon", + "strappado", + "strip club", + "style doggy", + "suck", + "sucks", + "suicide girls", + "sultry women", + "swastika", + "swinger", + "tainted love", + "taste my", + "tea bagging", + "threesome", + "throating", + "tied up", + "tight white", + "tit", + "tits", + "titties", + "titty", + "tongue in a", + "topless", + "tosser", + "towelhead", + "tranny", + "tribadism", + "tub girl", + "tubgirl", + "tushy", + "twat", + "twink", + "twinkie", + "two girls one cup", + "undressing", + "upskirt", + "urethra play", + "urophilia", + "vagina", + "venus mound", + "vibrator", + "violet wand", + "vorarephilia", + "voyeur", + "vulva", + "wank", + "wetback", + "wet dream", + "white power", + "wrapping men", + "wrinkled starfish", + "xx", + "xxx", + "yaoi", + "yellow showers", + "yiffy", + "zoophilia", + "🖕" + ] +} diff --git a/packages/glin-profanity/lib/data/esperanto.json b/packages/glin-profanity/lib/data/esperanto.json new file mode 100644 index 0000000..7bc6fb0 --- /dev/null +++ b/packages/glin-profanity/lib/data/esperanto.json @@ -0,0 +1,41 @@ +{ + "words": [ + "bugren", + "bugri", + "bugru", + "ĉiesulino", + "ĉiesulo", + "diofek", + "diofeka", + "fek", + "feken", + "fekfikanto", + "feklekulo", + "fekulo", + "fik", + "fikado", + "fikema", + "fikfek", + "fiki", + "fikiĝi", + "fikiĝu", + "fikilo", + "fikklaŭno", + "fikota", + "fiku", + "forfiki", + "forfikiĝu", + "forfiku", + "forfurzu", + "forpisi", + "forpisu", + "furzulo", + "kacen", + "kaco", + "kacsuĉulo", + "kojono", + "piĉen", + "piĉo", + "zamenfek" + ] +} diff --git a/packages/glin-profanity/lib/data/finnish.json b/packages/glin-profanity/lib/data/finnish.json new file mode 100644 index 0000000..570fda1 --- /dev/null +++ b/packages/glin-profanity/lib/data/finnish.json @@ -0,0 +1,134 @@ +{ + "words": [ + "alfred nussi", + "bylsiä", + "haahka", + "haista paska", + "haista vittu", + "hatullinen", + "helvetisti", + "hevonkuusi", + "hevonpaska", + "hevonperse", + "hevonvittu", + "hevonvitunperse", + "hitosti", + "hitto", + "huorata", + "hässiä", + "juosten kustu", + "jutku", + "jutsku", + "jätkä", + "kananpaska", + "koiranpaska", + "kuin esterin perseestä", + "kulli", + "kullinluikaus", + "kuppainen", + "kusaista", + "kuseksia", + "kusettaa", + "kusi", + "kusipää", + "kusta", + "kyrpiintynyt", + "kyrpiintyä", + "kyrpiä", + "kyrpä", + "kyrpänaama", + "kyrvitys", + "lahtari", + "lutka", + "molo", + "molopää", + "mulkero", + "mulkku", + "mulkvisti", + "muna", + "munapää", + "munaton", + "mutakuono", + "mutiainen", + "naida", + "nainti", + "narttu", + "neekeri", + "nekru", + "nuolla persettä", + "nussia", + "nussija", + "nussinta", + "paljaalla", + "palli", + "pallit", + "paneskella", + "panettaa", + "panna", + "pano", + "pantava", + "paska", + "paskainen", + "paskamainen", + "paskanmarjat", + "paskantaa", + "paskapuhe", + "paskapää", + "paskattaa", + "paskiainen", + "paskoa", + "pehko", + "pentele", + "perkele", + "perkeleesti", + "persaukinen", + "perse", + "perseennuolija", + "perseet olalla", + "persereikä", + "perseääliö", + "persläpi", + "perspano", + "persvako", + "pilkunnussija", + "pillu", + "pillut", + "pipari", + "piru", + "pistää", + "pyllyvako", + "reikä", + "reva", + "ripsipiirakka", + "runkata", + "runkkari", + "runkkaus", + "runkku", + "ryssä", + "rättipää", + "saatanasti", + "suklaaosasto", + "tavara", + "toosa", + "tuhkaluukku", + "tumputtaa", + "turpasauna", + "tussu", + "tussukka", + "tussut", + "vakipano", + "vetää käteen", + "viiksi", + "vittu", + "vittuilla", + "vittuilu", + "vittumainen", + "vittuuntua", + "vittuuntunut", + "vitun", + "vitusti", + "vituttaa", + "vitutus", + "äpärä" + ] +} diff --git a/packages/glin-profanity/lib/data/french.json b/packages/glin-profanity/lib/data/french.json new file mode 100644 index 0000000..a4d9ffb --- /dev/null +++ b/packages/glin-profanity/lib/data/french.json @@ -0,0 +1,99 @@ +{ + "words": [ + "baiser", + "bander", + "bigornette", + "bite", + "bitte", + "bloblos", + "bordel", + "bosser", + "bourré", + "bourrée", + "brackmard", + "branlage", + "branler", + "branlette", + "branleur", + "branleuse", + "brouter le cresson", + "caca", + "cailler", + "chatte", + "chiasse", + "chier", + "chiottes", + "clito", + "clitoris", + "con", + "connard", + "connasse", + "conne", + "couilles", + "cramouille", + "cul", + "déconne", + "déconner", + "drague", + "emmerdant", + "emmerder", + "emmerdeur", + "emmerdeuse", + "enculé", + "enculée", + "enculeur", + "enculeurs", + "enfoiré", + "enfoirée", + "étron", + "fille de pute", + "fils de pute", + "folle", + "foutre", + "gerbe", + "gerber", + "gouine", + "grande folle", + "grogniasse", + "gueule", + "jouir", + "la putain de ta mère", + "MALPT", + "ménage à trois", + "merde", + "merdeuse", + "merdeux", + "meuf", + "nègre", + "nique ta mère", + "nique ta race", + "palucher", + "pédale", + "pédé", + "péter", + "pipi", + "pisser", + "pouffiasse", + "pousse-crotte", + "putain", + "pute", + "ramoner", + "sac à foutre", + "sac à merde", + "salaud", + "salope", + "suce", + "tapette", + "tanche", + "teuch", + "teuf", + "tringler", + "trique", + "troncher", + "trou du cul", + "turlute", + "veuve", + "zigounette", + "zizi" + ] +} diff --git a/packages/glin-profanity/lib/data/german.json b/packages/glin-profanity/lib/data/german.json new file mode 100644 index 0000000..1706344 --- /dev/null +++ b/packages/glin-profanity/lib/data/german.json @@ -0,0 +1,69 @@ +{ + "words": [ + "analritter", + "arsch", + "arschficker", + "arschlecker", + "arschloch", + "bimbo", + "bratze", + "bumsen", + "bonze", + "dödel", + "fick", + "ficken", + "flittchen", + "fotze", + "fratze", + "hackfresse", + "hure", + "hurensohn", + "ische", + "kackbratze", + "kacke", + "kacken", + "kackwurst", + "kampflesbe", + "kanake", + "kimme", + "lümmel", + "MILF", + "möpse", + "morgenlatte", + "möse", + "mufti", + "muschi", + "nackt", + "neger", + "nigger", + "nippel", + "nutte", + "onanieren", + "orgasmus", + "pimmel", + "pimpern", + "pinkeln", + "pissen", + "pisser", + "popel", + "poppen", + "porno", + "reudig", + "rosette", + "schabracke", + "schlampe", + "scheiße", + "scheisser", + "schiesser", + "schnackeln", + "schwanzlutscher", + "schwuchtel", + "tittchen", + "titten", + "vögeln", + "vollpfosten", + "wichse", + "wichsen", + "wichser" + ] +} diff --git a/packages/glin-profanity/lib/data/hindi.json b/packages/glin-profanity/lib/data/hindi.json new file mode 100644 index 0000000..e341dd6 --- /dev/null +++ b/packages/glin-profanity/lib/data/hindi.json @@ -0,0 +1,100 @@ +{ + "words": [ + "aand", + "aandu", + "balatkar", + "beti chod", + "bhadva", + "bhadve", + "bhandve", + "bhootni ke", + "bhosad", + "bhosadi ke", + "boobe", + "chakke", + "chinaal", + "chinki", + "chod", + "chodu", + "chodu bhagat", + "chooche", + "choochi", + "choot", + "choot ke baal", + "chootia", + "chootiya", + "chuche", + "chuchi", + "chudai khanaa", + "chudan chudai", + "chut", + "chut ke baal", + "chut ke dhakkan", + "chut maarli", + "chutad", + "chutadd", + "chutan", + "chutia", + "chutiya", + "gaand", + "gaandfat", + "gaandmasti", + "gaandufad", + "gandu", + "gashti", + "gasti", + "ghassa", + "ghasti", + "harami", + "haramzade", + "hawas", + "hawas ke pujari", + "hijda", + "hijra", + "jhant", + "jhant chaatu", + "jhant ke baal", + "jhantu", + "kamine", + "kaminey", + "kanjar", + "kutta", + "kutta kamina", + "kutte ki aulad", + "kutte ki jat", + "kuttiya", + "loda", + "lodu", + "lund", + "lund choos", + "lund khajoor", + "lundtopi", + "lundure", + "maa ki chut", + "maal", + "madar chod", + "mooh mein le", + "mutth", + "najayaz", + "najayaz aulaad", + "najayaz paidaish", + "paki", + "pataka", + "patakha", + "raand", + "randi", + "saala", + "saala kutta", + "saali kutti", + "saali randi", + "suar", + "suar ki aulad", + "tatte", + "tatti", + "teri maa ka bhosada", + "teri maa ka boba chusu", + "teri maa ki chut", + "tharak", + "tharki" + ] +} diff --git a/packages/glin-profanity/lib/data/hungarian.json b/packages/glin-profanity/lib/data/hungarian.json new file mode 100644 index 0000000..a7f6999 --- /dev/null +++ b/packages/glin-profanity/lib/data/hungarian.json @@ -0,0 +1,100 @@ +{ + "words": [ + "balfasz", + "balfaszok", + "balfaszokat", + "balfaszt", + "barmok", + "barmokat", + "barmot", + "barom", + "baszik", + "bazmeg", + "buksza", + "bukszák", + "bukszákat", + "bukszát", + "búr", + "búrok", + "csöcs", + "csöcsök", + "csöcsöket", + "csöcsöt", + "fasz", + "faszfej", + "faszfejek", + "faszfejeket", + "faszfejet", + "faszok", + "faszokat", + "faszt", + "fing", + "fingok", + "fingokat", + "fingot", + "franc", + "francok", + "francokat", + "francot", + "geci", + "gecibb", + "gecik", + "geciket", + "gecit", + "kibaszott", + "kibaszottabb", + "kúr", + "kurafi", + "kurafik", + "kurafikat", + "kurafit", + "kurva", + "kurvák", + "kurvákat", + "kurvát", + "leggecibb", + "legkibaszottabb", + "legszarabb", + "marha", + "marhák", + "marhákat", + "marhát", + "megdöglik", + "pele", + "pelék", + "picsa", + "picsákat", + "picsát", + "pina", + "pinák", + "pinákat", + "pinát", + "pofa", + "pofákat", + "pofát", + "pöcs", + "pöcsök", + "pöcsöket", + "pöcsöt", + "punci", + "puncik", + "segg", + "seggek", + "seggeket", + "segget", + "seggfej", + "seggfejek", + "seggfejeket", + "seggfejet", + "szajha", + "szajhák", + "szajhákat", + "szajhát", + "szar", + "szarabb", + "szarik", + "szarok", + "szarokat", + "szart" + ] +} diff --git a/packages/glin-profanity/lib/data/italian.json b/packages/glin-profanity/lib/data/italian.json new file mode 100644 index 0000000..1cbbe84 --- /dev/null +++ b/packages/glin-profanity/lib/data/italian.json @@ -0,0 +1,184 @@ +{ + "words": [ + "allupato", + "ammucchiata", + "anale", + "arrapato", + "arrusa", + "arruso", + "assatanato", + "bagascia", + "bagassa", + "bagnarsi", + "baldracca", + "balle", + "battere", + "battona", + "belino", + "biga", + "bocchinara", + "bocchino", + "bofilo", + "boiata", + "bordello", + "brinca", + "bucaiolo", + "budiùlo", + "buona donna", + "busone", + "cacca", + "caccati in mano e prenditi a schiaffi", + "caciocappella", + "cadavere", + "cagare", + "cagata", + "cagna", + "cammello", + "cappella", + "carciofo", + "carità", + "casci", + "cazzata", + "cazzimma", + "cazzo", + "checca", + "chiappa", + "chiavare", + "chiavata", + "ciospo", + "ciucciami il cazzo", + "coglione", + "coglioni", + "cornuto", + "cozza", + "culattina", + "culattone", + "culo", + "di merda", + "ditalino", + "duro", + "fare unaŠ", + "fava", + "femminuccia", + "fica", + "figa", + "figlio di buona donna", + "figlio di puttana", + "figone", + "finocchio", + "fottere", + "fottersi", + "fracicone", + "fregna", + "frocio", + "froscio", + "fuori come un balcone", + "goldone", + "grilletto", + "guanto", + "guardone", + "incazzarsi", + "incoglionirsi", + "ingoio", + "l'arte bolognese", + "leccaculo", + "lecchino", + "lofare", + "loffa", + "loffare", + "lumaca", + "manico", + "mannaggia", + "merda", + "merdata", + "merdoso", + "mignotta", + "minchia", + "minchione", + "mona", + "monta", + "montare", + "mussa", + "nave scuola", + "nerchia", + "nudo", + "padulo", + "palle", + "palloso", + "patacca", + "patonza", + "pecorina", + "pesce", + "picio", + "pincare", + "pipa", + "pipì", + "pippone", + "pirla", + "pisciare", + "piscio", + "pisello", + "pistola", + "pistolotto", + "pomiciare", + "pompa", + "pompino", + "porca", + "porca madonna", + "porca miseria", + "porca puttana", + "porco due", + "porco zio", + "potta", + "puppami", + "puttana", + "quaglia", + "recchione", + "regina", + "rincoglionire", + "rizzarsi", + "rompiballe", + "ruffiano", + "sbattere", + "sbattersi", + "sborra", + "sborrata", + "sborrone", + "sbrodolata", + "scopare", + "scopata", + "scorreggiare", + "sega", + "slinguare", + "slinguata", + "smandrappata", + "soccia", + "socmel", + "sorca", + "spagnola", + "spompinare", + "sticchio", + "stronza", + "stronzata", + "stronzo", + "succhiami", + "sveltina", + "sverginare", + "tarzanello", + "terrone", + "testa di cazzo", + "tette", + "tirare", + "topa", + "troia", + "trombare", + "uccello", + "vacca", + "vaffanculo", + "vangare", + "venire", + "zinne", + "zio cantante", + "zoccola" + ] +} diff --git a/packages/glin-profanity/lib/data/japanese.json b/packages/glin-profanity/lib/data/japanese.json new file mode 100644 index 0000000..42f827e --- /dev/null +++ b/packages/glin-profanity/lib/data/japanese.json @@ -0,0 +1,189 @@ +{ + "words": [ + "3p", + "g スポット", + "s & m", + "sm", + "sm女王", + "xx", + "アジアのかわいい女の子", + "アスホール", + "アナリングス", + "アナル", + "いたずら", + "イラマチオ", + "ウェブカメラ", + "エクスタシー", + "エスコート", + "エッチ", + "エロティズム", + "エロティック", + "オーガズム", + "オカマ", + "おしっこ", + "おしり", + "オシリ", + "おしりのあな", + "おっぱい", + "オッパイ", + "オナニー", + "オマンコ", + "おもらし", + "お尻", + "カーマスートラ", + "カント", + "クリトリス", + "グループ・セックス", + "グロ", + "クンニリングス", + "ゲイ・セックス", + "ゲイの男性", + "ゲイボーイ", + "ゴールデンシャワー", + "コカイン", + "ゴックン", + "サディズム", + "しばり", + "スウィンガー", + "スカートの中", + "スカトロ", + "ストラップオン", + "ストリップ劇場", + "スラット", + "スリット", + "セクシーな", + "セクシーな 10 代", + "セックス", + "ソドミー", + "ちんこ", + "ディープ・スロート", + "ディック", + "ディルド", + "デートレイプ", + "デブ", + "テレフォンセックス", + "ドッグスタイル", + "トップレス", + "なめ", + "ニガー", + "ヌード", + "ネオ・ナチ", + "ハードコア", + "パイパン", + "バイブレーター", + "バック・スタイル", + "パンティー", + "ビッチ", + "ファック", + "ファンタジー", + "フィスト", + "フェティッシュ", + "フェラチオ", + "ふたなり", + "ぶっかけ", + "フック", + "プリンス アルバート ピアス", + "プレイボーイ", + "ベアバック", + "ペニス", + "ペニスバンド", + "ボーイズラブ", + "ボールギャグ", + "ボールを蹴る", + "ぽっちゃり", + "ホモ", + "ポルノ", + "ポルノグラフィー", + "ボンテージ", + "マザー・ファッカー", + "マスターベーション", + "まんこ", + "やおい", + "やりまん", + "ユダヤ人", + "ラティーナ", + "ラバー", + "ランジェリー", + "レイプ", + "レズビアン", + "ローター", + "ロリータ", + "淫乱", + "陰毛", + "革抑制", + "騎上位", + "巨根", + "巨乳", + "強姦犯", + "玉なめ", + "玉舐め", + "緊縛", + "近親相姦", + "嫌い", + "後背位", + "合意の性交", + "拷問", + "殺し方", + "殺人事件", + "殺人方法", + "支配", + "児童性虐待", + "自己愛性", + "射精", + "手コキ", + "獣姦", + "女の子", + "女王様", + "女子高生", + "女装", + "新しいポルノ", + "人妻", + "人種", + "性交", + "正常位", + "生殖器", + "精液", + "挿入", + "足フェチ", + "足を広げる", + "大陰唇", + "脱衣", + "茶色のシャワー", + "中出し", + "潮吹き女", + "潮吹き男性", + "直腸", + "剃毛", + "貞操帯", + "奴隷", + "二穴", + "乳首", + "尿道プレイ", + "覗き", + "売春婦", + "縛り", + "噴出", + "糞", + "糞尿愛好症", + "糞便", + "平手打ち", + "変態", + "勃起する", + "夢精", + "毛深い", + "誘惑", + "幼児", + "幼児性愛者", + "裸", + "裸の女性", + "乱交", + "両性", + "両性具有", + "両刀", + "輪姦", + "卍", + "宦官", + "肛門", + "膣" + ] +} diff --git a/packages/glin-profanity/lib/data/korean.json b/packages/glin-profanity/lib/data/korean.json new file mode 100644 index 0000000..bf9e680 --- /dev/null +++ b/packages/glin-profanity/lib/data/korean.json @@ -0,0 +1,76 @@ +{ + "words": [ + "강간", + "개새끼", + "개자식", + "개좆", + "개차반", + "거유", + "계집년", + "고자", + "근친", + "노모", + "니기미", + "뒤질래", + "딸딸이", + "때씹", + "또라이", + "뙤놈", + "로리타", + "망가", + "몰카", + "미친", + "미친새끼", + "바바리맨", + "변태", + "병신", + "보지", + "불알", + "빠구리", + "사까시", + "섹스", + "스와핑", + "쌍놈", + "씨발", + "씨발놈", + "씨팔", + "씹", + "씹물", + "씹빨", + "씹새끼", + "씹알", + "씹창", + "씹팔", + "암캐", + "애자", + "야동", + "야사", + "야애니", + "엄창", + "에로", + "염병", + "옘병", + "유모", + "육갑", + "은꼴", + "자위", + "자지", + "잡년", + "종간나", + "좆", + "좆만", + "죽일년", + "쥐좆", + "직촬", + "짱깨", + "쪽바리", + "창녀", + "포르노", + "하드코어", + "호로", + "화냥년", + "후레아들", + "후장", + "희쭈그리" + ] +} diff --git a/packages/glin-profanity/lib/data/persian.json b/packages/glin-profanity/lib/data/persian.json new file mode 100644 index 0000000..aa24cb8 --- /dev/null +++ b/packages/glin-profanity/lib/data/persian.json @@ -0,0 +1,49 @@ +{ + "words": [ + "آب کیر", + "ارگاسم", + "برهنه", + "پورن", + "پورنو", + "تجاوز", + "تخمی", + "جق", + "جقی", + "جلق", + "جنده", + "چوچول", + "حشر", + "حشری", + "داف", + "دودول", + "ساک زدن", + "سکس", + "سکس کردن", + "سکسی", + "سوپر", + "شق کردن", + "شهوت", + "شهوتی", + "شونبول", + "فیلم سوپر", + "کس", + "کس دادن", + "کس کردن", + "کسکش", + "کوس", + "کون", + "کون دادن", + "کون کردن", + "کونکش", + "کونی", + "کیر", + "کیری", + "لاپا", + "لاپایی", + "لاشی", + "لخت", + "لش", + "منی", + "هرزه" + ] +} diff --git a/packages/glin-profanity/lib/data/polish.json b/packages/glin-profanity/lib/data/polish.json new file mode 100644 index 0000000..862bae7 --- /dev/null +++ b/packages/glin-profanity/lib/data/polish.json @@ -0,0 +1,57 @@ +{ + "words": [ + "burdel", + "burdelmama", + "chuj", + "chujnia", + "ciota", + "cipa", + "cyc", + "debil", + "dmuchać", + "do kurwy nędzy", + "dupa", + "dupek", + "duperele", + "dziwka", + "fiut", + "gówno", + "gówno prawda", + "huj", + "jajco", + "jajeczko", + "jajko", + "jajo", + "ja pierdolę", + "jebać", + "jebany", + "kurwa", + "kurwy", + "kutafon", + "kutas", + "lizać pałę", + "obciągać chuja", + "obciągać fiuta", + "obciągać loda", + "pieprzyć", + "pierdolec", + "pierdolić", + "pierdolnięty", + "pierdoła", + "pierdzieć", + "pizda", + "pojeb", + "popierdolony", + "robic loda", + "robić loda", + "ruchać", + "rzygać", + "skurwysyn", + "sraczka", + "srać", + "suka", + "syf", + "wkurwiać", + "zajebisty" + ] +} diff --git a/packages/glin-profanity/lib/data/portuguese.json b/packages/glin-profanity/lib/data/portuguese.json new file mode 100644 index 0000000..99e15c9 --- /dev/null +++ b/packages/glin-profanity/lib/data/portuguese.json @@ -0,0 +1,78 @@ +{ + "words": [ + "aborto", + "amador", + "ânus", + "aranha", + "ariano", + "balalao", + "bastardo", + "bicha", + "biscate", + "bissexual", + "boceta", + "boob", + "bosta", + "braulio de borracha", + "bumbum", + "burro", + "cabrao", + "cacete", + "cagar", + "camisinha", + "caralho", + "cerveja", + "chochota", + "chupar", + "clitoris", + "cocaína", + "colhoes", + "comer", + "cona", + "consolo", + "corno", + "cu", + "dar o rabo", + "dum raio", + "esporra", + "fecal", + "filho da puta", + "foda", + "foda-se", + "foder", + "frango assado", + "gozar", + "grelho", + "heroína", + "heterosexual", + "homem gay", + "homoerótico", + "homosexual", + "inferno", + "lésbica", + "lolita", + "mama", + "merda", + "paneleiro", + "passar um cheque", + "pau", + "peidar", + "pênis", + "pinto", + "porra", + "puta", + "puta que pariu", + "puta que te pariu", + "queca", + "sacanagem", + "saco", + "torneira", + "transar", + "vai-te foder", + "vai tomar no cu", + "veado", + "vibrador", + "xana", + "xochota" + ] +} diff --git a/packages/glin-profanity/lib/data/russian.json b/packages/glin-profanity/lib/data/russian.json new file mode 100644 index 0000000..c26e37a --- /dev/null +++ b/packages/glin-profanity/lib/data/russian.json @@ -0,0 +1,156 @@ +{ + "words": [ + "bychara", + "byk", + "chernozhopyi", + "dolboy'eb", + "ebalnik", + "ebalo", + "ebalom sch'elkat", + "gol", + "mudack", + "opizdenet", + "osto'eblo", + "ostokhuitel'no", + "ot'ebis", + "otmudohat", + "otpizdit", + "otsosi", + "padlo", + "pedik", + "perdet", + "petuh", + "pidar gnoinyj", + "pizda", + "pizdato", + "pizdatyi", + "piz'det", + "pizdetc", + "pizdoi nakryt'sja", + "pizd'uk", + "piz`dyulina", + "podi ku'evo", + "poeben", + "po'imat' na konchik", + "po'iti posrat", + "po khuy", + "poluchit pizdy", + "pososi moyu konfetku", + "prissat", + "proebat", + "promudobl'adsksya pizdopro'ebina", + "propezdoloch", + "prosrat", + "raspeezdeyi", + "raspizdatyi", + "raz'yebuy", + "raz'yoba", + "s'ebat'sya", + "shalava", + "styervo", + "sukin syn", + "svodit posrat", + "svoloch", + "trakhat'sya", + "trimandoblydskiy pizdoproyob", + "ubl'yudok", + "uboy", + "u'ebitsche", + "vafl'a", + "vafli lovit", + "v pizdu", + "vyperdysh", + "vzdrochennyi", + "yeb vas", + "za'ebat", + "zaebis", + "zalupa", + "zalupat", + "zasranetc", + "zassat", + "zlo'ebuchy", + "бардак", + "бздёнок", + "блядки", + "блядовать", + "блядство", + "блядь", + "бугор", + "во пизду", + "встать раком", + "выёбываться", + "гандон", + "говно", + "говнюк", + "голый", + "дать пизды", + "дерьмо", + "дрочить", + "другой дразнится", + "ёбарь", + "ебать", + "ебать-копать", + "ебло", + "ебнуть", + "ёб твою мать", + "жопа", + "жополиз", + "играть на кожаной флейте", + "измудохать", + "каждый дрочит как он хочет", + "какая разница", + "как два пальца обоссать", + "курите мою трубку", + "лысого в кулаке гонять", + "малофя", + "манда", + "мандавошка", + "мент", + "муда", + "мудило", + "мудозмон", + "наебать", + "наебениться", + "наебнуться", + "на фиг", + "на хуй", + "на хую вертеть", + "на хуя", + "нахуячиться", + "невебенный", + "не ебет", + "ни за хуй собачу", + "ни хуя", + "обнаженный", + "обоссаться можно", + "один ебётся", + "опесдол", + "офигеть", + "охуеть", + "охуйтельно", + "половое сношение", + "секс", + "сиски", + "спиздить", + "срать", + "ссать", + "траxать", + "ты мне ваньку не валяй", + "фига", + "хапать", + "хер с ней", + "хер с ним", + "хохол", + "хрен", + "хуёво", + "хуёвый", + "хуем груши околачивать", + "хуеплет", + "хуило", + "хуиней страдать", + "хуиня", + "хуй", + "хуйнуть", + "хуй пинать" + ] +} diff --git a/packages/glin-profanity/lib/data/swedish.json b/packages/glin-profanity/lib/data/swedish.json new file mode 100644 index 0000000..ba07270 --- /dev/null +++ b/packages/glin-profanity/lib/data/swedish.json @@ -0,0 +1,47 @@ +{ + "words": [ + "arsle", + "brutta", + "discofitta", + "dra åt helvete", + "fan", + "fitta", + "fittig", + "för helvete", + "helvete", + "hård", + "jävlar", + "knulla", + "kuk", + "kuksås", + "kötthuvud", + "köttnacke", + "moona", + "moonade", + "moonar", + "moonat", + "mutta", + "nigger", + "neger", + "olla", + "pippa", + "pitt", + "prutt", + "pök", + "runka", + "röv", + "rövhål", + "rövknulla", + "satan", + "skita", + "skit ner dig", + "skäggbiff", + "snedfitta", + "snefitta", + "stake", + "subba", + "sås", + "sätta på", + "tusan" + ] +} diff --git a/packages/glin-profanity/lib/data/thai.json b/packages/glin-profanity/lib/data/thai.json new file mode 100644 index 0000000..7f3c4ae --- /dev/null +++ b/packages/glin-profanity/lib/data/thai.json @@ -0,0 +1,35 @@ +{ + "words": [ + "กระดอ", + "กระเด้า", + "กระหรี่", + "กะปิ", + "กู", + "ขี้", + "ควย", + "จิ๋ม", + "จู๋", + "เจ๊ก", + "เจี๊ยว", + "ดอกทอง", + "ตอแหล", + "ตูด", + "น้ําแตก", + "มึง", + "แม่ง", + "เย็ด", + "รูตูด", + "ล้างตู้เย็น", + "ส้นตีน", + "สัด", + "เสือก", + "หญิงชาติชั่ว", + "หลั่ง", + "ห่า", + "หํา", + "หี", + "เหี้ย", + "อมนกเขา", + "ไอ้ควาย" + ] +} diff --git a/packages/glin-profanity/lib/data/turkish.json b/packages/glin-profanity/lib/data/turkish.json new file mode 100644 index 0000000..24cdf0a --- /dev/null +++ b/packages/glin-profanity/lib/data/turkish.json @@ -0,0 +1,195 @@ +{ + "words": [ + "aardappels afgieteng", + "achter het raam zitten", + "afberen", + "aflebberen", + "afrossen", + "afrukken", + "aftrekken", + "afwerkplaats", + "afzeiken", + "afzuigen", + "anderhalve man en een paardekop", + "anita", + "asbak", + "aso", + "bagger schijten", + "balen", + "bedonderen", + "befborstelg", + "beffen", + "bekken", + "belazeren", + "besodemieterd zijn", + "besodemieteren", + "beurt", + "boemelen", + "boerelul", + "boerenpummelg", + "bokkelul", + "botergeil", + "broekhoesten", + "brugpieperg", + "buffelen", + "buiten de pot piesen", + "da's kloten van de bok", + "de ballen", + "de hoer spelen", + "de hond uitlaten", + "de koffer induiken", + "delg", + "de pijp aan maarten geven", + "de pijp uitgaan", + "dombo", + "draaikontg", + "driehoog achter wonen", + "drolg", + "drooggeiler", + "droogkloot", + "een beurt geven", + "een nummertje maken", + "een wip maken", + "eikel", + "engerd", + "flamoes", + "flikken", + "flikker", + "gadverdamme", + "galbak", + "gat", + "gedoogzone", + "geilneef", + "gesodemieter", + "godverdomme", + "graftak", + "gras maaien", + "gratenkutg", + "greppeldel", + "griet", + "hoempert", + "hoer", + "hoerenbuurt", + "hoerenloper", + "hoerig", + "hol", + "hufter", + "huisdealer", + "johny", + "kanen", + "kettingzeugg", + "klaarkomen", + "klerebeer", + "klojo", + "klooien", + "klootjesvolk", + "klootoog", + "klootzak", + "kloten", + "knor", + "kontg", + "kontneuken", + "krentekakker", + "kut", + "kuttelikkertje", + "kwakkieg", + "liefdesgrot", + "lul", + "lul-de-behanger", + "lulhannes", + "lummel", + "mafketel", + "matennaaierg", + "matje", + "mof", + "mutsg", + "naaien", + "naakt", + "neuken", + "neukstier", + "nicht", + "oetlul", + "opgeilen", + "opkankeren", + "oprotten", + "opsodemieteren", + "op z'n hondjes", + "op z'n sodemieter geven", + "opzouten", + "ouwehoer", + "ouwehoeren", + "ouwe rukker", + "paal", + "paardelul", + "palen", + "penozeg", + "piesen", + "pijpbekkieg", + "pijpen", + "pik", + "pleurislaaier", + "poep", + "poepen", + "poot", + "portiekslet", + "pot", + "potverdorie", + "publiciteitsgeil", + "raaskallen", + "reet", + "reetridder", + "reet trappen, voor zijn", + "remsporeng", + "reutelen", + "rothoer", + "rotzak", + "rukhond", + "rukken", + "schatje", + "schijt", + "schijten", + "schoft", + "schuinsmarcheerder", + "shit", + "slempen", + "sletg", + "sletterig", + "slik mijn zaad", + "snolg", + "spuiten", + "standje", + "standje-69g", + "stoephoer", + "stootje", + "strontg", + "sufferdg", + "tapijtnek", + "teefg", + "temeier", + "teringlijer", + "toeter", + "tongzoeng", + "triootjeg", + "trottoir prostituée", + "trottoirteef", + "vergallen", + "verkloten", + "verneuken", + "viespeuk", + "vingeren", + "vleesroos", + "voor jan lul", + "voor jan-met-de-korte-achternaam", + "watje", + "welzijnsmafia", + "wijf", + "wippen", + "wuftje", + "zaadje", + "zakkenwasser", + "zeiken", + "zeiker", + "zuigen", + "zuiplap" + ] +} diff --git a/packages/glin-profanity/lib/filters/Filter.d.ts b/packages/glin-profanity/lib/filters/Filter.d.ts new file mode 100644 index 0000000..6fa028c --- /dev/null +++ b/packages/glin-profanity/lib/filters/Filter.d.ts @@ -0,0 +1,27 @@ +import { Language, CheckProfanityResult } from '../types/types'; +interface FilterConfig { + languages?: Language[]; + allLanguages?: boolean; + caseSensitive?: boolean; + wordBoundaries?: boolean; + customWords?: string[]; + replaceWith?: string; + severityLevels?: boolean; + ignoreWords?: string[]; + logProfanity?: boolean; +} +declare class Filter { + private words; + private caseSensitive; + private wordBoundaries; + private replaceWith?; + private severityLevels; + private ignoreWords; + private logProfanity; + constructor(config?: FilterConfig); + private getRegex; + isProfane(value: string): boolean; + checkProfanity(text: string): CheckProfanityResult; +} +export { Filter }; +//# sourceMappingURL=Filter.d.ts.map \ No newline at end of file diff --git a/packages/glin-profanity/lib/filters/Filter.d.ts.map b/packages/glin-profanity/lib/filters/Filter.d.ts.map new file mode 100644 index 0000000..8645524 --- /dev/null +++ b/packages/glin-profanity/lib/filters/Filter.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Filter.d.ts","sourceRoot":"","sources":["../../src/filters/Filter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,cAAM,MAAM;IACV,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAU;gBAElB,MAAM,CAAC,EAAE,YAAY;IAgCjC,OAAO,CAAC,QAAQ;IAMhB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAOjC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB;CA8BnD;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"} \ No newline at end of file diff --git a/packages/glin-profanity/lib/filters/Filter.js b/packages/glin-profanity/lib/filters/Filter.js new file mode 100644 index 0000000..a0aee78 --- /dev/null +++ b/packages/glin-profanity/lib/filters/Filter.js @@ -0,0 +1,73 @@ +import dictionary from '../data/dictionary'; +class Filter { + constructor(config) { + var _a, _b, _c, _d, _e; + let words = []; + this.caseSensitive = (_a = config === null || config === void 0 ? void 0 : config.caseSensitive) !== null && _a !== void 0 ? _a : false; + this.wordBoundaries = (_b = config === null || config === void 0 ? void 0 : config.wordBoundaries) !== null && _b !== void 0 ? _b : true; + this.replaceWith = config === null || config === void 0 ? void 0 : config.replaceWith; + this.severityLevels = (_c = config === null || config === void 0 ? void 0 : config.severityLevels) !== null && _c !== void 0 ? _c : false; + this.ignoreWords = new Set(((_d = config === null || config === void 0 ? void 0 : config.ignoreWords) === null || _d === void 0 ? void 0 : _d.map(word => word.toLowerCase())) || []); + this.logProfanity = (_e = config === null || config === void 0 ? void 0 : config.logProfanity) !== null && _e !== void 0 ? _e : false; + if (config === null || config === void 0 ? void 0 : config.allLanguages) { + for (const lang in dictionary) { + if (dictionary.hasOwnProperty(lang)) { + words = [...words, ...dictionary[lang]]; + } + } + } + else { + const languages = (config === null || config === void 0 ? void 0 : config.languages) || ['english']; + const languagesChecks = new Set(languages); + if (languagesChecks.size !== 0) { + languagesChecks.forEach(lang => { + words = [...words, ...dictionary[lang]]; + }); + } + } + if (config === null || config === void 0 ? void 0 : config.customWords) { + words = [...words, ...config.customWords]; + } + this.words = new Map(words.map(word => [word, 1])); // Default severity level is 1 + } + getRegex(word) { + const flags = this.caseSensitive ? 'g' : 'gi'; + const boundary = this.wordBoundaries ? '\\b' : ''; + return new RegExp(`${boundary}${word.replace(/(\W)/g, '\\$1')}${boundary}`, flags); + } + isProfane(value) { + for (const word of this.words.keys()) { + if (!this.ignoreWords.has(word.toLowerCase()) && this.getRegex(word).test(value)) + return true; + } + return false; + } + checkProfanity(text) { + const words = text.split(/\s+/); + const profaneWords = []; + const severityMap = {}; + for (const word of words) { + if (this.words.has(word.toLowerCase()) && !this.ignoreWords.has(word.toLowerCase())) { + profaneWords.push(word); + severityMap[word] = this.words.get(word.toLowerCase()); + } + } + if (this.logProfanity && profaneWords.length > 0) { + console.log(`Profane words detected: ${profaneWords.join(', ')}`); + } + let processedText = text; + if (this.replaceWith) { + for (const word of profaneWords) { + processedText = processedText.replace(this.getRegex(word), this.replaceWith); + } + } + return { + containsProfanity: profaneWords.length > 0, + profaneWords, + processedText: this.replaceWith ? processedText : undefined, + severityMap: this.severityLevels ? severityMap : undefined, + }; + } +} +export { Filter }; +//# sourceMappingURL=Filter.js.map \ No newline at end of file diff --git a/packages/glin-profanity/lib/filters/Filter.js.map b/packages/glin-profanity/lib/filters/Filter.js.map new file mode 100644 index 0000000..6af9bdc --- /dev/null +++ b/packages/glin-profanity/lib/filters/Filter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Filter.js","sourceRoot":"","sources":["../../src/filters/Filter.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,oBAAoB,CAAC;AAe5C,MAAM,MAAM;IASV,YAAY,MAAqB;;QAC/B,IAAI,KAAK,GAAa,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,mCAAI,KAAK,CAAC;QACpD,IAAI,CAAC,cAAc,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,cAAc,mCAAI,IAAI,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,cAAc,mCAAI,KAAK,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,CAAC,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,0CAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAI,EAAE,CAAC,CAAC;QACvF,IAAI,CAAC,YAAY,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,mCAAI,KAAK,CAAC;QAElD,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,IAAI,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpC,KAAK,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,UAAU,CAAC,IAAgB,CAAC,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,KAAI,CAAC,SAAS,CAAC,CAAC;YACnD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAW,SAAS,CAAC,CAAC;YACrD,IAAI,eAAe,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC/B,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBAC7B,KAAK,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC1C,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,EAAE,CAAC;YACxB,KAAK,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,8BAA8B;IACpF,CAAC;IAEO,QAAQ,CAAC,IAAY;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,IAAI,MAAM,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;IACrF,CAAC;IAED,SAAS,CAAC,KAAa;QACrB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;QAChG,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,cAAc,CAAC,IAAY;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,MAAM,WAAW,GAA+B,EAAE,CAAC;QAEnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBACpF,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAE,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,2BAA2B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,aAAa,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gBAChC,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;QAED,OAAO;YACL,iBAAiB,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC;YAC1C,YAAY;YACZ,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;YAC3D,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;SAC3D,CAAC;IACJ,CAAC;CACF;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"} \ No newline at end of file diff --git a/packages/glin-profanity/lib/hooks/useProfanityChecker.d.ts b/packages/glin-profanity/lib/hooks/useProfanityChecker.d.ts new file mode 100644 index 0000000..08838cd --- /dev/null +++ b/packages/glin-profanity/lib/hooks/useProfanityChecker.d.ts @@ -0,0 +1,18 @@ +import { CheckProfanityResult, Language } from '../types/types'; +interface ProfanityCheckerConfig { + languages?: Language[]; + allLanguages?: boolean; + caseSensitive?: boolean; + wordBoundaries?: boolean; + customWords?: string[]; + replaceWith?: string; + severityLevels?: boolean; + customActions?: (result: CheckProfanityResult) => void; +} +export declare const useProfanityChecker: (config?: ProfanityCheckerConfig) => { + result: CheckProfanityResult; + checkText: (text: string) => void; + checkTextAsync: (text: string) => Promise; +}; +export {}; +//# sourceMappingURL=useProfanityChecker.d.ts.map \ No newline at end of file diff --git a/packages/glin-profanity/lib/hooks/useProfanityChecker.d.ts.map b/packages/glin-profanity/lib/hooks/useProfanityChecker.d.ts.map new file mode 100644 index 0000000..c1ff86b --- /dev/null +++ b/packages/glin-profanity/lib/hooks/useProfanityChecker.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"useProfanityChecker.d.ts","sourceRoot":"","sources":["../../src/hooks/useProfanityChecker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEhE,UAAU,sBAAsB;IAC9B,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACxD;AAED,eAAO,MAAM,mBAAmB,YAAa,sBAAsB;;sBAIxC,MAAM;2BAQK,MAAM;CAgB3C,CAAC"} \ No newline at end of file diff --git a/packages/glin-profanity/lib/hooks/useProfanityChecker.js b/packages/glin-profanity/lib/hooks/useProfanityChecker.js new file mode 100644 index 0000000..80e2e72 --- /dev/null +++ b/packages/glin-profanity/lib/hooks/useProfanityChecker.js @@ -0,0 +1,38 @@ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +import { useState } from 'react'; +import { Filter } from '../filters/Filter'; +export const useProfanityChecker = (config) => { + const [result, setResult] = useState(null); + const filter = new Filter(config); + const checkText = (text) => { + const checkResult = filter.checkProfanity(text); + setResult(checkResult); + if (config === null || config === void 0 ? void 0 : config.customActions) { + config.customActions(checkResult); + } + }; + const checkTextAsync = (text) => __awaiter(void 0, void 0, void 0, function* () { + return new Promise((resolve) => { + const checkResult = filter.checkProfanity(text); + setResult(checkResult); + if (config === null || config === void 0 ? void 0 : config.customActions) { + config.customActions(checkResult); + } + resolve(checkResult); + }); + }); + return { + result, + checkText, + checkTextAsync, + }; +}; +//# sourceMappingURL=useProfanityChecker.js.map \ No newline at end of file diff --git a/packages/glin-profanity/lib/hooks/useProfanityChecker.js.map b/packages/glin-profanity/lib/hooks/useProfanityChecker.js.map new file mode 100644 index 0000000..2bb53f9 --- /dev/null +++ b/packages/glin-profanity/lib/hooks/useProfanityChecker.js.map @@ -0,0 +1 @@ +{"version":3,"file":"useProfanityChecker.js","sourceRoot":"","sources":["../../src/hooks/useProfanityChecker.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAc3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAA+B,EAAE,EAAE;IACrE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAA8B,IAAI,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;IAElC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE;QACjC,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAChD,SAAS,CAAC,WAAW,CAAC,CAAC;QACvB,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,EAAE,CAAC;YAC1B,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAO,IAAY,EAAE,EAAE;QAC5C,OAAO,IAAI,OAAO,CAAuB,CAAC,OAAO,EAAE,EAAE;YACnD,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAChD,SAAS,CAAC,WAAW,CAAC,CAAC;YACvB,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,EAAE,CAAC;gBAC1B,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YACpC,CAAC;YACD,OAAO,CAAC,WAAW,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC,CAAA,CAAC;IAEF,OAAO;QACL,MAAM;QACN,SAAS;QACT,cAAc;KACf,CAAC;AACJ,CAAC,CAAC"} \ No newline at end of file diff --git a/packages/glin-profanity/lib/index.d.ts b/packages/glin-profanity/lib/index.d.ts new file mode 100644 index 0000000..706554c --- /dev/null +++ b/packages/glin-profanity/lib/index.d.ts @@ -0,0 +1,4 @@ +export { Filter } from './filters/Filter'; +export { useProfanityChecker } from './hooks/useProfanityChecker'; +export type { Language, CheckProfanityResult } from './types/types'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/glin-profanity/lib/index.d.ts.map b/packages/glin-profanity/lib/index.d.ts.map new file mode 100644 index 0000000..e2d93f1 --- /dev/null +++ b/packages/glin-profanity/lib/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,YAAY,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC"} \ No newline at end of file diff --git a/packages/glin-profanity/lib/index.js b/packages/glin-profanity/lib/index.js new file mode 100644 index 0000000..7507fb7 --- /dev/null +++ b/packages/glin-profanity/lib/index.js @@ -0,0 +1,3 @@ +export { Filter } from './filters/Filter'; +export { useProfanityChecker } from './hooks/useProfanityChecker'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/glin-profanity/lib/index.js.map b/packages/glin-profanity/lib/index.js.map new file mode 100644 index 0000000..4230d06 --- /dev/null +++ b/packages/glin-profanity/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC"} \ No newline at end of file diff --git a/packages/glin-profanity/lib/types/types.d.ts b/packages/glin-profanity/lib/types/types.d.ts new file mode 100644 index 0000000..4be4cc1 --- /dev/null +++ b/packages/glin-profanity/lib/types/types.d.ts @@ -0,0 +1,10 @@ +export interface CheckProfanityResult { + containsProfanity: boolean; + profaneWords: string[]; + processedText?: string; + severityMap?: { + [word: string]: number; + }; +} +export type Language = 'arabic' | 'chinese' | 'czech' | 'danish' | 'english' | 'esperanto' | 'finnish' | 'french' | 'german' | 'hindi' | 'hungarian' | 'italian' | 'japanese' | 'korean' | 'norwegian' | 'persian' | 'polish' | 'portuguese' | 'russian' | 'turkish' | 'swedish' | 'thai'; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/glin-profanity/lib/types/types.d.ts.map b/packages/glin-profanity/lib/types/types.d.ts.map new file mode 100644 index 0000000..18291e1 --- /dev/null +++ b/packages/glin-profanity/lib/types/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,oBAAoB;IACnC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CAC1C;AACD,MAAM,MAAM,QAAQ,GAChB,QAAQ,GACR,SAAS,GACT,OAAO,GACP,QAAQ,GACR,SAAS,GACT,WAAW,GACX,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,WAAW,GACX,SAAS,GACT,UAAU,GACV,QAAQ,GACR,WAAW,GACX,SAAS,GACT,QAAQ,GACR,YAAY,GACZ,SAAS,GACT,SAAS,GACT,SAAS,GACT,MAAM,CAAC"} \ No newline at end of file diff --git a/packages/glin-profanity/lib/types/types.js b/packages/glin-profanity/lib/types/types.js new file mode 100644 index 0000000..718fd38 --- /dev/null +++ b/packages/glin-profanity/lib/types/types.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/packages/glin-profanity/lib/types/types.js.map b/packages/glin-profanity/lib/types/types.js.map new file mode 100644 index 0000000..67c6c9d --- /dev/null +++ b/packages/glin-profanity/lib/types/types.js.map @@ -0,0 +1 @@ +{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/packages/glin-profanity/package.json b/packages/glin-profanity/package.json new file mode 100644 index 0000000..bffdeaa --- /dev/null +++ b/packages/glin-profanity/package.json @@ -0,0 +1,28 @@ +{ + "name": "glin-profanity", + "version": "1.1.2", + "description": "Glin-Profanity is a lightweight and efficient npm package designed to detect and filter profane language in text inputs across multiple languages. Whether you’re building a chat application, a comment section, or any platform where user-generated content is involved, Glin-Profanity helps you maintain a clean and respectful environment.", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "scripts": { + "build": "tsc -p tsconfig.json" + }, + "files": [ + "lib" + ], + "repository": { + "type": "git", + "url": "https://github.com/GLINCKER/glin-profanity" + }, + "keywords": [ + "glin-profanity", + "glincker", + "glin", + "profanity" + ], + "author": "gdsks", + "license": "ISC", + "dependencies": { + "glin-profanity": "file:" + } +} diff --git a/packages/glin-profanity/src/data/Norwegian.json b/packages/glin-profanity/src/data/Norwegian.json new file mode 100644 index 0000000..e7f3818 --- /dev/null +++ b/packages/glin-profanity/src/data/Norwegian.json @@ -0,0 +1,17 @@ +{ + "words": [ + "drittsekk", + "faen i helvete", + "fitte", + "jævla", + "kuk", + "kukene", + "kuker", + "nigger", + "pikk", + "sotrør", + "ståpikk", + "ståpikkene", + "ståpikker" + ] +} diff --git a/packages/glin-profanity/src/data/arabic.json b/packages/glin-profanity/src/data/arabic.json new file mode 100644 index 0000000..ae213b0 --- /dev/null +++ b/packages/glin-profanity/src/data/arabic.json @@ -0,0 +1,157 @@ +{ + "words": [ + "سكس", + "طيز", + "شرج", + "لعق", + "لحس", + "تمص", + "بيضان", + "ثدي", + "بز", + "حلمة", + "مفلقسة", + "بظر", + "كس", + "مبادل", + "عاهرة", + "جماع", + "قضيب", + "زب", + "لوطي", + "لواط", + "سحاق", + "اغتصاب", + "خنثي", + "احتلام", + "نيك", + "متناك", + "شرموطة", + "عرص", + "خول", + "قحبة", + "لبوة", + "وسخ", + "علق", + "ناك", + "منيك", + "شرمط", + "قحب", + "شرموط", + "خول", + "هنيك", + "فحل", + "ديوث", + "متناك", + "هايج", + "زبر", + "bdsm", + "زان", + "سادي", + "سادى", + "كسها", + "كسي", + "كسك", + "كسم", + "بنتاك", + "بتناك", + "نيكني", + "ديوث", + "نياك", + "فشاخ", + "فشخ", + "هفشخك", + "شذوذ", + "لواط", + "لوطي", + "لوطى", + "عاهر", + "لحس", + "متع", + "حمام", + "هربط", + "دياث", + "سحاق", + "جنس", + "جنس", + "جوزي", + "مراتي", + "مراتى", + "مرات", + "ورا", + "شعر", + "مشعر", + "اركب", + "فرس", + "جاد", + "منيوك", + "زوبر", + "طياز", + "شراميط", + "فاجر", + "محروم", + "واقف", + "بيحك", + "ممحونة", + "لبن", + "لبو", + "واقف", + "شرقان", + "افضي", + "دهولت", + "bzaz", + "nek", + "nik", + "mtnak", + "zeb", + "zep", + "zobr", + "zopr", + "kos", + "a7a", + "hayg", + "لبوه", + "لبوة", + "لبوت", + "sharma", + "banoty", + "بنوتي", + "بنوتى", + "سلب", + "عايز", + "دكر", + "نتاية", + "نتايه", + "زنج", + "ممحون", + "تعبان", + "اقعد", + "بزاز", + "هيجان", + "سافل", + "مصيهولي", + "هتمص", + "مصي", + "بز", + "hayg", + "كلوت", + "اندر", + "سنتيا", + "بوكسر", + "بتاع", + "مشتهي", + "زبى", + "نكته", + "اتناك", + "nayak", + "nyak", + "neeek", + "اغتصا", + "زب", + "كس", + "بلكيشن", + "كيشن", + "ليسبيان", + "سبيان" + ] +} diff --git a/packages/glin-profanity/src/data/chinese.json b/packages/glin-profanity/src/data/chinese.json new file mode 100644 index 0000000..5cb8688 --- /dev/null +++ b/packages/glin-profanity/src/data/chinese.json @@ -0,0 +1,298 @@ +{ + "words": [ + "13.", + "13点", + "三级片", + "下三烂", + "下贱", + "个老子的", + "九游", + "乳", + "乳交", + "乳头", + "乳房", + "乳波臀浪", + "交配", + "仆街", + "他奶奶", + "他奶奶的", + "他奶娘的", + "他妈", + "他妈ㄉ王八蛋", + "他妈地", + "他妈的", + "他娘", + "他马的", + "你个傻比", + "你他马的", + "你全家", + "你奶奶的", + "你她马的", + "你妈", + "你妈的", + "你娘", + "你娘卡好", + "你娘咧", + "你它妈的", + "你它马的", + "你是鸡", + "你是鸭", + "你马的", + "做爱", + "傻比", + "傻逼", + "册那", + "军妓", + "几八", + "几叭", + "几巴", + "几芭", + "刚度", + "刚瘪三", + "包皮", + "十三点", + "卖B", + "卖比", + "卖淫", + "卵", + "卵子", + "双峰微颤", + "口交", + "口肯", + "叫床", + "吃屎", + "后庭", + "吹箫", + "塞你公", + "塞你娘", + "塞你母", + "塞你爸", + "塞你老师", + "塞你老母", + "处女", + "外阴", + "大卵子", + "大卵泡", + "大鸡巴", + "奶", + "奶奶的熊", + "奶子", + "奸", + "奸你", + "她妈地", + "她妈的", + "她马的", + "妈B", + "妈个B", + "妈个比", + "妈个老比", + "妈妈的", + "妈比", + "妈的", + "妈的B", + "妈逼", + "妓", + "妓女", + "妓院", + "妳她妈的", + "妳妈的", + "妳娘的", + "妳老母的", + "妳马的", + "姘头", + "姣西", + "姦", + "娘个比", + "娘的", + "婊子", + "婊子养的", + "嫖娼", + "嫖客", + "它妈地", + "它妈的", + "密洞", + "射你", + "射精", + "小乳头", + "小卵子", + "小卵泡", + "小瘪三", + "小肉粒", + "小骚比", + "小骚货", + "小鸡巴", + "小鸡鸡", + "屁眼", + "屁股", + "屄", + "屌", + "巨乳", + "干x娘", + "干七八", + "干你", + "干你妈", + "干你娘", + "干你老母", + "干你良", + "干妳妈", + "干妳娘", + "干妳老母", + "干妳马", + "干您娘", + "干机掰", + "干死CS", + "干死GM", + "干死你", + "干死客服", + "幹", + "强奸", + "强奸你", + "性", + "性交", + "性器", + "性无能", + "性爱", + "情色", + "想上你", + "懆您妈", + "懆您娘", + "懒8", + "懒八", + "懒叫", + "懒教", + "成人", + "我操你祖宗十八代", + "扒光", + "打炮", + "打飞机", + "抽插", + "招妓", + "插你", + "插死你", + "撒尿", + "操你", + "操你全家", + "操你奶奶", + "操你妈", + "操你娘", + "操你祖宗", + "操你老妈", + "操你老母", + "操妳", + "操妳全家", + "操妳妈", + "操妳娘", + "操妳祖宗", + "操机掰", + "操比", + "操逼", + "放荡", + "日他娘", + "日你", + "日你妈", + "日你老娘", + "日你老母", + "日批", + "月经", + "机八", + "机巴", + "机机歪歪", + "杂种", + "浪叫", + "淫", + "淫乱", + "淫妇", + "淫棍", + "淫水", + "淫秽", + "淫荡", + "淫西", + "湿透的内裤", + "激情", + "灨你娘", + "烂货", + "烂逼", + "爛", + "狗屁", + "狗日", + "狗狼养的", + "玉杵", + "王八蛋", + "瓜娃子", + "瓜婆娘", + "瓜批", + "瘪三", + "白烂", + "白痴", + "白癡", + "祖宗", + "私服", + "笨蛋", + "精子", + "老二", + "老味", + "老母", + "老瘪三", + "老骚比", + "老骚货", + "肉壁", + "肉棍子", + "肉棒", + "肉缝", + "肏", + "肛交", + "肥西", + "色情", + "花柳", + "荡妇", + "賤", + "贝肉", + "贱B", + "贱人", + "贱货", + "贼你妈", + "赛你老母", + "赛妳阿母", + "赣您娘", + "轮奸", + "迷药", + "逼", + "逼样", + "野鸡", + "阳具", + "阳萎", + "阴唇", + "阴户", + "阴核", + "阴毛", + "阴茎", + "阴道", + "阴部", + "雞巴", + "靠北", + "靠母", + "靠爸", + "靠背", + "靠腰", + "驶你公", + "驶你娘", + "驶你母", + "驶你爸", + "驶你老师", + "驶你老母", + "骚比", + "骚货", + "骚逼", + "鬼公", + "鸡8", + "鸡八", + "鸡叭", + "鸡吧", + "鸡奸", + "鸡巴", + "鸡芭", + "鸡鸡", + "龟儿子", + "龟头" + ] +} diff --git a/packages/glin-profanity/src/data/czech.json b/packages/glin-profanity/src/data/czech.json new file mode 100644 index 0000000..09840f3 --- /dev/null +++ b/packages/glin-profanity/src/data/czech.json @@ -0,0 +1,45 @@ +{ + "words": [ + "bordel", + "buzna", + "čumět", + "čurák", + "debil", + "do piče", + "do prdele", + "dršťka", + "držka", + "flundra", + "hajzl", + "hovno", + "chcanky", + "chuj", + "jebat", + "kokot", + "kokotina", + "koňomrd", + "kunda", + "kurva", + "mamrd", + "mrdat", + "mrdka", + "mrdník", + "oslošoust", + "piča", + "píčus", + "píchat", + "pizda", + "prcat", + "prdel", + "prdelka", + "sračka", + "srát", + "šoustat", + "šulin", + "vypíčenec", + "zkurvit", + "zkurvysyn", + "zmrd", + "žrát" + ] +} diff --git a/packages/glin-profanity/src/data/danish.json b/packages/glin-profanity/src/data/danish.json new file mode 100644 index 0000000..9866f1f --- /dev/null +++ b/packages/glin-profanity/src/data/danish.json @@ -0,0 +1,24 @@ +{ + "words": [ + "anus", + "bøsserøv", + "cock", + "fisse", + "fissehår", + "fuck", + "hestepik", + "kussekryller", + "lort", + "luder", + "pik", + "pikhår", + "pikslugeri", + "piksutteri", + "pis", + "røv", + "røvhul", + "røvskæg", + "røvspræke", + "shit" + ] +} diff --git a/packages/glin-profanity/src/data/dictionary.ts b/packages/glin-profanity/src/data/dictionary.ts new file mode 100644 index 0000000..f43fd9f --- /dev/null +++ b/packages/glin-profanity/src/data/dictionary.ts @@ -0,0 +1,46 @@ +import Arabic from './arabic.json'; +import Chinese from './chinese.json'; +import Czech from './czech.json'; +import Danish from './danish.json'; +import Esperanto from './esperanto.json'; +import English from './english.json'; +import Finnish from './finnish.json'; +import German from './german.json'; +import Hindi from './hindi.json'; +import Hungarian from './hungarian.json'; +import Korean from './korean.json'; +import Norwegian from './Norwegian.json'; +import Persian from './persian.json'; +import Polish from './polish.json'; +import Portuguese from './portuguese.json'; +import Russian from './russian.json'; +import French from './french.json'; +import Italian from './italian.json'; +import Japanese from './japanese.json'; +import Turkish from './turkish.json'; +import Swedish from './swedish.json'; +import Thai from './thai.json'; +export default { + arabic: Arabic.words, + chinese: Chinese.words, + czech: Czech.words, + danish: Danish.words, + english: English.words, + esperanto: Esperanto.words, + finnish: Finnish.words, + french: French.words, + german: German.words, + hindi: Hindi.words, + hungarian: Hungarian.words, + italian: Italian.words, + japanese: Japanese.words, + korean: Korean.words, + norwegian: Norwegian.words, + persian: Persian.words, + polish: Polish.words, + portuguese: Portuguese.words, + russian: Russian.words, + turkish: Turkish.words, + swedish: Swedish.words, + thai: Thai.words, +}; diff --git a/packages/glin-profanity/src/data/english.json b/packages/glin-profanity/src/data/english.json new file mode 100644 index 0000000..87bc72b --- /dev/null +++ b/packages/glin-profanity/src/data/english.json @@ -0,0 +1,382 @@ +{ + "words": [ + "testbad01", + "2g1c", + "2 girls 1 cup", + "acrotomophilia", + "alabama hot pocket", + "alaskan pipeline", + "anal", + "anilingus", + "anus", + "apeshit", + "arsehole", + "ass", + "asshole", + "assmunch", + "auto erotic", + "autoerotic", + "babeland", + "baby batter", + "baby juice", + "ball gag", + "ball gravy", + "ball kicking", + "ball licking", + "ball sack", + "ball sucking", + "bangbros", + "bareback", + "barely legal", + "barenaked", + "bastard", + "bastardo", + "bastinado", + "bbw", + "bdsm", + "beaner", + "beaners", + "beaver cleaver", + "beaver lips", + "bestiality", + "big black", + "big breasts", + "big knockers", + "big tits", + "bimbos", + "birdlock", + "bitch", + "bitches", + "black cock", + "blonde action", + "blonde on blonde action", + "blowjob", + "blow job", + "blow your load", + "blue waffle", + "blumpkin", + "bollocks", + "bondage", + "boner", + "boob", + "boobs", + "booty call", + "brown showers", + "brunette action", + "bukkake", + "bulldyke", + "bullet vibe", + "bullshit", + "bung hole", + "bunghole", + "busty", + "butt", + "buttcheeks", + "butthole", + "camel toe", + "camgirl", + "camslut", + "camwhore", + "carpet muncher", + "carpetmuncher", + "chocolate rosebuds", + "circlejerk", + "cleveland steamer", + "clit", + "clitoris", + "clover clamps", + "clusterfuck", + "cock", + "cocks", + "coprolagnia", + "coprophilia", + "cornhole", + "coon", + "coons", + "creampie", + "cum", + "cumming", + "cunnilingus", + "cunt", + "darkie", + "date rape", + "daterape", + "deep throat", + "deepthroat", + "dendrophilia", + "dick", + "dildo", + "dingleberry", + "dingleberries", + "dirty pillows", + "dirty sanchez", + "doggie style", + "doggiestyle", + "doggy style", + "doggystyle", + "dog style", + "dolcett", + "domination", + "dominatrix", + "dommes", + "donkey punch", + "double dong", + "double penetration", + "dp action", + "dry hump", + "dvda", + "eat my ass", + "ecchi", + "ejaculation", + "erotic", + "erotism", + "escort", + "eunuch", + "faggot", + "fecal", + "felch", + "fellatio", + "feltch", + "female squirting", + "femdom", + "figging", + "fingerbang", + "fingering", + "fisting", + "foot fetish", + "footjob", + "frotting", + "fuck", + "fuck buttons", + "fuckin", + "fucking", + "fucktards", + "fudge packer", + "fudgepacker", + "futanari", + "gang bang", + "gay sex", + "genitals", + "giant cock", + "girl on", + "girl on top", + "girls gone wild", + "goatcx", + "goatse", + "god damn", + "gokkun", + "golden shower", + "goodpoop", + "goo girl", + "goregasm", + "grope", + "group sex", + "g-spot", + "guro", + "hand job", + "handjob", + "hard core", + "hardcore", + "hentai", + "homoerotic", + "honkey", + "hooker", + "hot carl", + "hot chick", + "how to kill", + "how to murder", + "huge fat", + "humping", + "incest", + "intercourse", + "jack off", + "jail bait", + "jailbait", + "jelly donut", + "jerk off", + "jigaboo", + "jiggaboo", + "jiggerboo", + "jizz", + "juggs", + "kike", + "kinbaku", + "kinkster", + "kinky", + "knobbing", + "leather restraint", + "leather straight jacket", + "lemon party", + "lolita", + "lovemaking", + "make me come", + "male squirting", + "masturbate", + "menage a trois", + "milf", + "missionary position", + "motherfucker", + "mound of venus", + "mr hands", + "muff diver", + "muffdiving", + "nambla", + "nawashi", + "negro", + "neonazi", + "nigga", + "nigger", + "nig nog", + "nimphomania", + "nipple", + "nipples", + "nsfw images", + "nude", + "nudity", + "nympho", + "nymphomania", + "octopussy", + "omorashi", + "one cup two girls", + "one guy one jar", + "orgasm", + "orgy", + "paedophile", + "paki", + "panties", + "panty", + "pedobear", + "pedophile", + "pegging", + "penis", + "phone sex", + "piece of shit", + "pissing", + "piss pig", + "pisspig", + "playboy", + "pleasure chest", + "pole smoker", + "ponyplay", + "poof", + "poon", + "poontang", + "punany", + "poop chute", + "poopchute", + "porn", + "porno", + "pornography", + "prince albert piercing", + "pthc", + "pubes", + "pussy", + "queaf", + "queef", + "quim", + "raghead", + "raging boner", + "rape", + "raping", + "rapist", + "rectum", + "reverse cowgirl", + "rimjob", + "rimming", + "rosy palm", + "rosy palm and her 5 sisters", + "rusty trombone", + "sadism", + "santorum", + "scat", + "schlong", + "scissoring", + "semen", + "sex", + "sexo", + "sexy", + "shaved beaver", + "shaved pussy", + "shemale", + "shibari", + "shit", + "shitblimp", + "shitty", + "shota", + "shrimping", + "skeet", + "slanteye", + "slut", + "s&m", + "smut", + "snatch", + "snowballing", + "sodomize", + "sodomy", + "spic", + "splooge", + "splooge moose", + "spooge", + "spread legs", + "spunk", + "strap on", + "strapon", + "strappado", + "strip club", + "style doggy", + "suck", + "sucks", + "suicide girls", + "sultry women", + "swastika", + "swinger", + "tainted love", + "taste my", + "tea bagging", + "threesome", + "throating", + "tied up", + "tight white", + "tit", + "tits", + "titties", + "titty", + "tongue in a", + "topless", + "tosser", + "towelhead", + "tranny", + "tribadism", + "tub girl", + "tubgirl", + "tushy", + "twat", + "twink", + "twinkie", + "two girls one cup", + "undressing", + "upskirt", + "urethra play", + "urophilia", + "vagina", + "venus mound", + "vibrator", + "violet wand", + "vorarephilia", + "voyeur", + "vulva", + "wank", + "wetback", + "wet dream", + "white power", + "wrapping men", + "wrinkled starfish", + "xx", + "xxx", + "yaoi", + "yellow showers", + "yiffy", + "zoophilia", + "🖕" + ] +} diff --git a/packages/glin-profanity/src/data/esperanto.json b/packages/glin-profanity/src/data/esperanto.json new file mode 100644 index 0000000..7ee7a12 --- /dev/null +++ b/packages/glin-profanity/src/data/esperanto.json @@ -0,0 +1,41 @@ +{ + "words": [ + "bugren", + "bugri", + "bugru", + "ĉiesulino", + "ĉiesulo", + "diofek", + "diofeka", + "fek", + "feken", + "fekfikanto", + "feklekulo", + "fekulo", + "fik", + "fikado", + "fikema", + "fikfek", + "fiki", + "fikiĝi", + "fikiĝu", + "fikilo", + "fikklaŭno", + "fikota", + "fiku", + "forfiki", + "forfikiĝu", + "forfiku", + "forfurzu", + "forpisi", + "forpisu", + "furzulo", + "kacen", + "kaco", + "kacsuĉulo", + "kojono", + "piĉen", + "piĉo", + "zamenfek" + ] +} diff --git a/packages/glin-profanity/src/data/finnish.json b/packages/glin-profanity/src/data/finnish.json new file mode 100644 index 0000000..37f1b76 --- /dev/null +++ b/packages/glin-profanity/src/data/finnish.json @@ -0,0 +1,134 @@ +{ + "words": [ + "alfred nussi", + "bylsiä", + "haahka", + "haista paska", + "haista vittu", + "hatullinen", + "helvetisti", + "hevonkuusi", + "hevonpaska", + "hevonperse", + "hevonvittu", + "hevonvitunperse", + "hitosti", + "hitto", + "huorata", + "hässiä", + "juosten kustu", + "jutku", + "jutsku", + "jätkä", + "kananpaska", + "koiranpaska", + "kuin esterin perseestä", + "kulli", + "kullinluikaus", + "kuppainen", + "kusaista", + "kuseksia", + "kusettaa", + "kusi", + "kusipää", + "kusta", + "kyrpiintynyt", + "kyrpiintyä", + "kyrpiä", + "kyrpä", + "kyrpänaama", + "kyrvitys", + "lahtari", + "lutka", + "molo", + "molopää", + "mulkero", + "mulkku", + "mulkvisti", + "muna", + "munapää", + "munaton", + "mutakuono", + "mutiainen", + "naida", + "nainti", + "narttu", + "neekeri", + "nekru", + "nuolla persettä", + "nussia", + "nussija", + "nussinta", + "paljaalla", + "palli", + "pallit", + "paneskella", + "panettaa", + "panna", + "pano", + "pantava", + "paska", + "paskainen", + "paskamainen", + "paskanmarjat", + "paskantaa", + "paskapuhe", + "paskapää", + "paskattaa", + "paskiainen", + "paskoa", + "pehko", + "pentele", + "perkele", + "perkeleesti", + "persaukinen", + "perse", + "perseennuolija", + "perseet olalla", + "persereikä", + "perseääliö", + "persläpi", + "perspano", + "persvako", + "pilkunnussija", + "pillu", + "pillut", + "pipari", + "piru", + "pistää", + "pyllyvako", + "reikä", + "reva", + "ripsipiirakka", + "runkata", + "runkkari", + "runkkaus", + "runkku", + "ryssä", + "rättipää", + "saatanasti", + "suklaaosasto", + "tavara", + "toosa", + "tuhkaluukku", + "tumputtaa", + "turpasauna", + "tussu", + "tussukka", + "tussut", + "vakipano", + "vetää käteen", + "viiksi", + "vittu", + "vittuilla", + "vittuilu", + "vittumainen", + "vittuuntua", + "vittuuntunut", + "vitun", + "vitusti", + "vituttaa", + "vitutus", + "äpärä" + ] +} diff --git a/packages/glin-profanity/src/data/french.json b/packages/glin-profanity/src/data/french.json new file mode 100644 index 0000000..04bce67 --- /dev/null +++ b/packages/glin-profanity/src/data/french.json @@ -0,0 +1,99 @@ +{ + "words": [ + "baiser", + "bander", + "bigornette", + "bite", + "bitte", + "bloblos", + "bordel", + "bosser", + "bourré", + "bourrée", + "brackmard", + "branlage", + "branler", + "branlette", + "branleur", + "branleuse", + "brouter le cresson", + "caca", + "cailler", + "chatte", + "chiasse", + "chier", + "chiottes", + "clito", + "clitoris", + "con", + "connard", + "connasse", + "conne", + "couilles", + "cramouille", + "cul", + "déconne", + "déconner", + "drague", + "emmerdant", + "emmerder", + "emmerdeur", + "emmerdeuse", + "enculé", + "enculée", + "enculeur", + "enculeurs", + "enfoiré", + "enfoirée", + "étron", + "fille de pute", + "fils de pute", + "folle", + "foutre", + "gerbe", + "gerber", + "gouine", + "grande folle", + "grogniasse", + "gueule", + "jouir", + "la putain de ta mère", + "MALPT", + "ménage à trois", + "merde", + "merdeuse", + "merdeux", + "meuf", + "nègre", + "nique ta mère", + "nique ta race", + "palucher", + "pédale", + "pédé", + "péter", + "pipi", + "pisser", + "pouffiasse", + "pousse-crotte", + "putain", + "pute", + "ramoner", + "sac à foutre", + "sac à merde", + "salaud", + "salope", + "suce", + "tapette", + "tanche", + "teuch", + "teuf", + "tringler", + "trique", + "troncher", + "trou du cul", + "turlute", + "veuve", + "zigounette", + "zizi" + ] +} diff --git a/packages/glin-profanity/src/data/german.json b/packages/glin-profanity/src/data/german.json new file mode 100644 index 0000000..8f1851b --- /dev/null +++ b/packages/glin-profanity/src/data/german.json @@ -0,0 +1,69 @@ +{ + "words": [ + "analritter", + "arsch", + "arschficker", + "arschlecker", + "arschloch", + "bimbo", + "bratze", + "bumsen", + "bonze", + "dödel", + "fick", + "ficken", + "flittchen", + "fotze", + "fratze", + "hackfresse", + "hure", + "hurensohn", + "ische", + "kackbratze", + "kacke", + "kacken", + "kackwurst", + "kampflesbe", + "kanake", + "kimme", + "lümmel", + "MILF", + "möpse", + "morgenlatte", + "möse", + "mufti", + "muschi", + "nackt", + "neger", + "nigger", + "nippel", + "nutte", + "onanieren", + "orgasmus", + "pimmel", + "pimpern", + "pinkeln", + "pissen", + "pisser", + "popel", + "poppen", + "porno", + "reudig", + "rosette", + "schabracke", + "schlampe", + "scheiße", + "scheisser", + "schiesser", + "schnackeln", + "schwanzlutscher", + "schwuchtel", + "tittchen", + "titten", + "vögeln", + "vollpfosten", + "wichse", + "wichsen", + "wichser" + ] +} diff --git a/packages/glin-profanity/src/data/hindi.json b/packages/glin-profanity/src/data/hindi.json new file mode 100644 index 0000000..79eecd1 --- /dev/null +++ b/packages/glin-profanity/src/data/hindi.json @@ -0,0 +1,100 @@ +{ + "words": [ + "aand", + "aandu", + "balatkar", + "beti chod", + "bhadva", + "bhadve", + "bhandve", + "bhootni ke", + "bhosad", + "bhosadi ke", + "boobe", + "chakke", + "chinaal", + "chinki", + "chod", + "chodu", + "chodu bhagat", + "chooche", + "choochi", + "choot", + "choot ke baal", + "chootia", + "chootiya", + "chuche", + "chuchi", + "chudai khanaa", + "chudan chudai", + "chut", + "chut ke baal", + "chut ke dhakkan", + "chut maarli", + "chutad", + "chutadd", + "chutan", + "chutia", + "chutiya", + "gaand", + "gaandfat", + "gaandmasti", + "gaandufad", + "gandu", + "gashti", + "gasti", + "ghassa", + "ghasti", + "harami", + "haramzade", + "hawas", + "hawas ke pujari", + "hijda", + "hijra", + "jhant", + "jhant chaatu", + "jhant ke baal", + "jhantu", + "kamine", + "kaminey", + "kanjar", + "kutta", + "kutta kamina", + "kutte ki aulad", + "kutte ki jat", + "kuttiya", + "loda", + "lodu", + "lund", + "lund choos", + "lund khajoor", + "lundtopi", + "lundure", + "maa ki chut", + "maal", + "madar chod", + "mooh mein le", + "mutth", + "najayaz", + "najayaz aulaad", + "najayaz paidaish", + "paki", + "pataka", + "patakha", + "raand", + "randi", + "saala", + "saala kutta", + "saali kutti", + "saali randi", + "suar", + "suar ki aulad", + "tatte", + "tatti", + "teri maa ka bhosada", + "teri maa ka boba chusu", + "teri maa ki chut", + "tharak", + "tharki" + ] +} diff --git a/packages/glin-profanity/src/data/hungarian.json b/packages/glin-profanity/src/data/hungarian.json new file mode 100644 index 0000000..e425da8 --- /dev/null +++ b/packages/glin-profanity/src/data/hungarian.json @@ -0,0 +1,100 @@ +{ + "words": [ + "balfasz", + "balfaszok", + "balfaszokat", + "balfaszt", + "barmok", + "barmokat", + "barmot", + "barom", + "baszik", + "bazmeg", + "buksza", + "bukszák", + "bukszákat", + "bukszát", + "búr", + "búrok", + "csöcs", + "csöcsök", + "csöcsöket", + "csöcsöt", + "fasz", + "faszfej", + "faszfejek", + "faszfejeket", + "faszfejet", + "faszok", + "faszokat", + "faszt", + "fing", + "fingok", + "fingokat", + "fingot", + "franc", + "francok", + "francokat", + "francot", + "geci", + "gecibb", + "gecik", + "geciket", + "gecit", + "kibaszott", + "kibaszottabb", + "kúr", + "kurafi", + "kurafik", + "kurafikat", + "kurafit", + "kurva", + "kurvák", + "kurvákat", + "kurvát", + "leggecibb", + "legkibaszottabb", + "legszarabb", + "marha", + "marhák", + "marhákat", + "marhát", + "megdöglik", + "pele", + "pelék", + "picsa", + "picsákat", + "picsát", + "pina", + "pinák", + "pinákat", + "pinát", + "pofa", + "pofákat", + "pofát", + "pöcs", + "pöcsök", + "pöcsöket", + "pöcsöt", + "punci", + "puncik", + "segg", + "seggek", + "seggeket", + "segget", + "seggfej", + "seggfejek", + "seggfejeket", + "seggfejet", + "szajha", + "szajhák", + "szajhákat", + "szajhát", + "szar", + "szarabb", + "szarik", + "szarok", + "szarokat", + "szart" + ] +} diff --git a/packages/glin-profanity/src/data/italian.json b/packages/glin-profanity/src/data/italian.json new file mode 100644 index 0000000..fbf5af0 --- /dev/null +++ b/packages/glin-profanity/src/data/italian.json @@ -0,0 +1,184 @@ +{ + "words": [ + "allupato", + "ammucchiata", + "anale", + "arrapato", + "arrusa", + "arruso", + "assatanato", + "bagascia", + "bagassa", + "bagnarsi", + "baldracca", + "balle", + "battere", + "battona", + "belino", + "biga", + "bocchinara", + "bocchino", + "bofilo", + "boiata", + "bordello", + "brinca", + "bucaiolo", + "budiùlo", + "buona donna", + "busone", + "cacca", + "caccati in mano e prenditi a schiaffi", + "caciocappella", + "cadavere", + "cagare", + "cagata", + "cagna", + "cammello", + "cappella", + "carciofo", + "carità", + "casci", + "cazzata", + "cazzimma", + "cazzo", + "checca", + "chiappa", + "chiavare", + "chiavata", + "ciospo", + "ciucciami il cazzo", + "coglione", + "coglioni", + "cornuto", + "cozza", + "culattina", + "culattone", + "culo", + "di merda", + "ditalino", + "duro", + "fare unaŠ", + "fava", + "femminuccia", + "fica", + "figa", + "figlio di buona donna", + "figlio di puttana", + "figone", + "finocchio", + "fottere", + "fottersi", + "fracicone", + "fregna", + "frocio", + "froscio", + "fuori come un balcone", + "goldone", + "grilletto", + "guanto", + "guardone", + "incazzarsi", + "incoglionirsi", + "ingoio", + "l'arte bolognese", + "leccaculo", + "lecchino", + "lofare", + "loffa", + "loffare", + "lumaca", + "manico", + "mannaggia", + "merda", + "merdata", + "merdoso", + "mignotta", + "minchia", + "minchione", + "mona", + "monta", + "montare", + "mussa", + "nave scuola", + "nerchia", + "nudo", + "padulo", + "palle", + "palloso", + "patacca", + "patonza", + "pecorina", + "pesce", + "picio", + "pincare", + "pipa", + "pipì", + "pippone", + "pirla", + "pisciare", + "piscio", + "pisello", + "pistola", + "pistolotto", + "pomiciare", + "pompa", + "pompino", + "porca", + "porca madonna", + "porca miseria", + "porca puttana", + "porco due", + "porco zio", + "potta", + "puppami", + "puttana", + "quaglia", + "recchione", + "regina", + "rincoglionire", + "rizzarsi", + "rompiballe", + "ruffiano", + "sbattere", + "sbattersi", + "sborra", + "sborrata", + "sborrone", + "sbrodolata", + "scopare", + "scopata", + "scorreggiare", + "sega", + "slinguare", + "slinguata", + "smandrappata", + "soccia", + "socmel", + "sorca", + "spagnola", + "spompinare", + "sticchio", + "stronza", + "stronzata", + "stronzo", + "succhiami", + "sveltina", + "sverginare", + "tarzanello", + "terrone", + "testa di cazzo", + "tette", + "tirare", + "topa", + "troia", + "trombare", + "uccello", + "vacca", + "vaffanculo", + "vangare", + "venire", + "zinne", + "zio cantante", + "zoccola" + ] +} diff --git a/packages/glin-profanity/src/data/japanese.json b/packages/glin-profanity/src/data/japanese.json new file mode 100644 index 0000000..5079e62 --- /dev/null +++ b/packages/glin-profanity/src/data/japanese.json @@ -0,0 +1,189 @@ +{ + "words": [ + "3p", + "g スポット", + "s & m", + "sm", + "sm女王", + "xx", + "アジアのかわいい女の子", + "アスホール", + "アナリングス", + "アナル", + "いたずら", + "イラマチオ", + "ウェブカメラ", + "エクスタシー", + "エスコート", + "エッチ", + "エロティズム", + "エロティック", + "オーガズム", + "オカマ", + "おしっこ", + "おしり", + "オシリ", + "おしりのあな", + "おっぱい", + "オッパイ", + "オナニー", + "オマンコ", + "おもらし", + "お尻", + "カーマスートラ", + "カント", + "クリトリス", + "グループ・セックス", + "グロ", + "クンニリングス", + "ゲイ・セックス", + "ゲイの男性", + "ゲイボーイ", + "ゴールデンシャワー", + "コカイン", + "ゴックン", + "サディズム", + "しばり", + "スウィンガー", + "スカートの中", + "スカトロ", + "ストラップオン", + "ストリップ劇場", + "スラット", + "スリット", + "セクシーな", + "セクシーな 10 代", + "セックス", + "ソドミー", + "ちんこ", + "ディープ・スロート", + "ディック", + "ディルド", + "デートレイプ", + "デブ", + "テレフォンセックス", + "ドッグスタイル", + "トップレス", + "なめ", + "ニガー", + "ヌード", + "ネオ・ナチ", + "ハードコア", + "パイパン", + "バイブレーター", + "バック・スタイル", + "パンティー", + "ビッチ", + "ファック", + "ファンタジー", + "フィスト", + "フェティッシュ", + "フェラチオ", + "ふたなり", + "ぶっかけ", + "フック", + "プリンス アルバート ピアス", + "プレイボーイ", + "ベアバック", + "ペニス", + "ペニスバンド", + "ボーイズラブ", + "ボールギャグ", + "ボールを蹴る", + "ぽっちゃり", + "ホモ", + "ポルノ", + "ポルノグラフィー", + "ボンテージ", + "マザー・ファッカー", + "マスターベーション", + "まんこ", + "やおい", + "やりまん", + "ユダヤ人", + "ラティーナ", + "ラバー", + "ランジェリー", + "レイプ", + "レズビアン", + "ローター", + "ロリータ", + "淫乱", + "陰毛", + "革抑制", + "騎上位", + "巨根", + "巨乳", + "強姦犯", + "玉なめ", + "玉舐め", + "緊縛", + "近親相姦", + "嫌い", + "後背位", + "合意の性交", + "拷問", + "殺し方", + "殺人事件", + "殺人方法", + "支配", + "児童性虐待", + "自己愛性", + "射精", + "手コキ", + "獣姦", + "女の子", + "女王様", + "女子高生", + "女装", + "新しいポルノ", + "人妻", + "人種", + "性交", + "正常位", + "生殖器", + "精液", + "挿入", + "足フェチ", + "足を広げる", + "大陰唇", + "脱衣", + "茶色のシャワー", + "中出し", + "潮吹き女", + "潮吹き男性", + "直腸", + "剃毛", + "貞操帯", + "奴隷", + "二穴", + "乳首", + "尿道プレイ", + "覗き", + "売春婦", + "縛り", + "噴出", + "糞", + "糞尿愛好症", + "糞便", + "平手打ち", + "変態", + "勃起する", + "夢精", + "毛深い", + "誘惑", + "幼児", + "幼児性愛者", + "裸", + "裸の女性", + "乱交", + "両性", + "両性具有", + "両刀", + "輪姦", + "卍", + "宦官", + "肛門", + "膣" + ] +} diff --git a/packages/glin-profanity/src/data/korean.json b/packages/glin-profanity/src/data/korean.json new file mode 100644 index 0000000..6e7c091 --- /dev/null +++ b/packages/glin-profanity/src/data/korean.json @@ -0,0 +1,76 @@ +{ + "words": [ + "강간", + "개새끼", + "개자식", + "개좆", + "개차반", + "거유", + "계집년", + "고자", + "근친", + "노모", + "니기미", + "뒤질래", + "딸딸이", + "때씹", + "또라이", + "뙤놈", + "로리타", + "망가", + "몰카", + "미친", + "미친새끼", + "바바리맨", + "변태", + "병신", + "보지", + "불알", + "빠구리", + "사까시", + "섹스", + "스와핑", + "쌍놈", + "씨발", + "씨발놈", + "씨팔", + "씹", + "씹물", + "씹빨", + "씹새끼", + "씹알", + "씹창", + "씹팔", + "암캐", + "애자", + "야동", + "야사", + "야애니", + "엄창", + "에로", + "염병", + "옘병", + "유모", + "육갑", + "은꼴", + "자위", + "자지", + "잡년", + "종간나", + "좆", + "좆만", + "죽일년", + "쥐좆", + "직촬", + "짱깨", + "쪽바리", + "창녀", + "포르노", + "하드코어", + "호로", + "화냥년", + "후레아들", + "후장", + "희쭈그리" + ] +} diff --git a/packages/glin-profanity/src/data/persian.json b/packages/glin-profanity/src/data/persian.json new file mode 100644 index 0000000..460e265 --- /dev/null +++ b/packages/glin-profanity/src/data/persian.json @@ -0,0 +1,49 @@ +{ + "words": [ + "آب کیر", + "ارگاسم", + "برهنه", + "پورن", + "پورنو", + "تجاوز", + "تخمی", + "جق", + "جقی", + "جلق", + "جنده", + "چوچول", + "حشر", + "حشری", + "داف", + "دودول", + "ساک زدن", + "سکس", + "سکس کردن", + "سکسی", + "سوپر", + "شق کردن", + "شهوت", + "شهوتی", + "شونبول", + "فیلم سوپر", + "کس", + "کس دادن", + "کس کردن", + "کسکش", + "کوس", + "کون", + "کون دادن", + "کون کردن", + "کونکش", + "کونی", + "کیر", + "کیری", + "لاپا", + "لاپایی", + "لاشی", + "لخت", + "لش", + "منی", + "هرزه" + ] +} diff --git a/packages/glin-profanity/src/data/polish.json b/packages/glin-profanity/src/data/polish.json new file mode 100644 index 0000000..4700605 --- /dev/null +++ b/packages/glin-profanity/src/data/polish.json @@ -0,0 +1,57 @@ +{ + "words": [ + "burdel", + "burdelmama", + "chuj", + "chujnia", + "ciota", + "cipa", + "cyc", + "debil", + "dmuchać", + "do kurwy nędzy", + "dupa", + "dupek", + "duperele", + "dziwka", + "fiut", + "gówno", + "gówno prawda", + "huj", + "jajco", + "jajeczko", + "jajko", + "jajo", + "ja pierdolę", + "jebać", + "jebany", + "kurwa", + "kurwy", + "kutafon", + "kutas", + "lizać pałę", + "obciągać chuja", + "obciągać fiuta", + "obciągać loda", + "pieprzyć", + "pierdolec", + "pierdolić", + "pierdolnięty", + "pierdoła", + "pierdzieć", + "pizda", + "pojeb", + "popierdolony", + "robic loda", + "robić loda", + "ruchać", + "rzygać", + "skurwysyn", + "sraczka", + "srać", + "suka", + "syf", + "wkurwiać", + "zajebisty" + ] +} diff --git a/packages/glin-profanity/src/data/portuguese.json b/packages/glin-profanity/src/data/portuguese.json new file mode 100644 index 0000000..09081e9 --- /dev/null +++ b/packages/glin-profanity/src/data/portuguese.json @@ -0,0 +1,78 @@ +{ + "words": [ + "aborto", + "amador", + "ânus", + "aranha", + "ariano", + "balalao", + "bastardo", + "bicha", + "biscate", + "bissexual", + "boceta", + "boob", + "bosta", + "braulio de borracha", + "bumbum", + "burro", + "cabrao", + "cacete", + "cagar", + "camisinha", + "caralho", + "cerveja", + "chochota", + "chupar", + "clitoris", + "cocaína", + "colhoes", + "comer", + "cona", + "consolo", + "corno", + "cu", + "dar o rabo", + "dum raio", + "esporra", + "fecal", + "filho da puta", + "foda", + "foda-se", + "foder", + "frango assado", + "gozar", + "grelho", + "heroína", + "heterosexual", + "homem gay", + "homoerótico", + "homosexual", + "inferno", + "lésbica", + "lolita", + "mama", + "merda", + "paneleiro", + "passar um cheque", + "pau", + "peidar", + "pênis", + "pinto", + "porra", + "puta", + "puta que pariu", + "puta que te pariu", + "queca", + "sacanagem", + "saco", + "torneira", + "transar", + "vai-te foder", + "vai tomar no cu", + "veado", + "vibrador", + "xana", + "xochota" + ] +} diff --git a/packages/glin-profanity/src/data/russian.json b/packages/glin-profanity/src/data/russian.json new file mode 100644 index 0000000..161cd92 --- /dev/null +++ b/packages/glin-profanity/src/data/russian.json @@ -0,0 +1,156 @@ +{ + "words": [ + "bychara", + "byk", + "chernozhopyi", + "dolboy'eb", + "ebalnik", + "ebalo", + "ebalom sch'elkat", + "gol", + "mudack", + "opizdenet", + "osto'eblo", + "ostokhuitel'no", + "ot'ebis", + "otmudohat", + "otpizdit", + "otsosi", + "padlo", + "pedik", + "perdet", + "petuh", + "pidar gnoinyj", + "pizda", + "pizdato", + "pizdatyi", + "piz'det", + "pizdetc", + "pizdoi nakryt'sja", + "pizd'uk", + "piz`dyulina", + "podi ku'evo", + "poeben", + "po'imat' na konchik", + "po'iti posrat", + "po khuy", + "poluchit pizdy", + "pososi moyu konfetku", + "prissat", + "proebat", + "promudobl'adsksya pizdopro'ebina", + "propezdoloch", + "prosrat", + "raspeezdeyi", + "raspizdatyi", + "raz'yebuy", + "raz'yoba", + "s'ebat'sya", + "shalava", + "styervo", + "sukin syn", + "svodit posrat", + "svoloch", + "trakhat'sya", + "trimandoblydskiy pizdoproyob", + "ubl'yudok", + "uboy", + "u'ebitsche", + "vafl'a", + "vafli lovit", + "v pizdu", + "vyperdysh", + "vzdrochennyi", + "yeb vas", + "za'ebat", + "zaebis", + "zalupa", + "zalupat", + "zasranetc", + "zassat", + "zlo'ebuchy", + "бардак", + "бздёнок", + "блядки", + "блядовать", + "блядство", + "блядь", + "бугор", + "во пизду", + "встать раком", + "выёбываться", + "гандон", + "говно", + "говнюк", + "голый", + "дать пизды", + "дерьмо", + "дрочить", + "другой дразнится", + "ёбарь", + "ебать", + "ебать-копать", + "ебло", + "ебнуть", + "ёб твою мать", + "жопа", + "жополиз", + "играть на кожаной флейте", + "измудохать", + "каждый дрочит как он хочет", + "какая разница", + "как два пальца обоссать", + "курите мою трубку", + "лысого в кулаке гонять", + "малофя", + "манда", + "мандавошка", + "мент", + "муда", + "мудило", + "мудозмон", + "наебать", + "наебениться", + "наебнуться", + "на фиг", + "на хуй", + "на хую вертеть", + "на хуя", + "нахуячиться", + "невебенный", + "не ебет", + "ни за хуй собачу", + "ни хуя", + "обнаженный", + "обоссаться можно", + "один ебётся", + "опесдол", + "офигеть", + "охуеть", + "охуйтельно", + "половое сношение", + "секс", + "сиски", + "спиздить", + "срать", + "ссать", + "траxать", + "ты мне ваньку не валяй", + "фига", + "хапать", + "хер с ней", + "хер с ним", + "хохол", + "хрен", + "хуёво", + "хуёвый", + "хуем груши околачивать", + "хуеплет", + "хуило", + "хуиней страдать", + "хуиня", + "хуй", + "хуйнуть", + "хуй пинать" + ] +} diff --git a/packages/glin-profanity/src/data/spanish.json b/packages/glin-profanity/src/data/spanish.json new file mode 100644 index 0000000..c46f1c6 --- /dev/null +++ b/packages/glin-profanity/src/data/spanish.json @@ -0,0 +1,72 @@ +{ + "words": [ + "sesinato", + "asno", + "bastardo", + "Bollera", + "Cabron", + "Cabrón", + "Caca", + "Chupada", + "Chupapollas", + "Chupetón", + "concha", + "Concha de tu madre", + "Coño", + "Coprofagía", + "Culo", + "Drogas", + "Esperma", + "Fiesta de salchichas", + "Follador", + "Follar", + "Gilipichis", + "Gilipollas", + "Hacer una paja", + "Haciendo el amor", + "Heroína", + "Hija de puta", + "Hijaputa", + "Hijo de puta", + "Hijoputa", + "Idiota", + "Imbécil", + "infierno", + "Jilipollas", + "Kapullo", + "Lameculos", + "Maciza", + "Macizorra", + "maldito", + "Mamada", + "Marica", + "Maricón", + "Mariconazo", + "martillo", + "Mierda", + "Nazi", + "Orina", + "Pedo", + "Pervertido", + "Pezón", + "Pinche", + "Pis", + "Prostituta", + "Puta", + "Racista", + "Ramera", + "Sádico", + "Semen", + "Sexo", + "Sexo oral", + "Soplagaitas", + "Soplapollas", + "Tetas grandes", + "Tía buena", + "Travesti", + "Trio", + "Verga", + "vete a la mierda", + "Vulva" + ] +} diff --git a/packages/glin-profanity/src/data/swedish.json b/packages/glin-profanity/src/data/swedish.json new file mode 100644 index 0000000..9bfbd12 --- /dev/null +++ b/packages/glin-profanity/src/data/swedish.json @@ -0,0 +1,47 @@ +{ + "words": [ + "arsle", + "brutta", + "discofitta", + "dra åt helvete", + "fan", + "fitta", + "fittig", + "för helvete", + "helvete", + "hård", + "jävlar", + "knulla", + "kuk", + "kuksås", + "kötthuvud", + "köttnacke", + "moona", + "moonade", + "moonar", + "moonat", + "mutta", + "nigger", + "neger", + "olla", + "pippa", + "pitt", + "prutt", + "pök", + "runka", + "röv", + "rövhål", + "rövknulla", + "satan", + "skita", + "skit ner dig", + "skäggbiff", + "snedfitta", + "snefitta", + "stake", + "subba", + "sås", + "sätta på", + "tusan" + ] +} diff --git a/packages/glin-profanity/src/data/thai.json b/packages/glin-profanity/src/data/thai.json new file mode 100644 index 0000000..82e3a4c --- /dev/null +++ b/packages/glin-profanity/src/data/thai.json @@ -0,0 +1,35 @@ +{ + "words": [ + "กระดอ", + "กระเด้า", + "กระหรี่", + "กะปิ", + "กู", + "ขี้", + "ควย", + "จิ๋ม", + "จู๋", + "เจ๊ก", + "เจี๊ยว", + "ดอกทอง", + "ตอแหล", + "ตูด", + "น้ําแตก", + "มึง", + "แม่ง", + "เย็ด", + "รูตูด", + "ล้างตู้เย็น", + "ส้นตีน", + "สัด", + "เสือก", + "หญิงชาติชั่ว", + "หลั่ง", + "ห่า", + "หํา", + "หี", + "เหี้ย", + "อมนกเขา", + "ไอ้ควาย" + ] +} diff --git a/packages/glin-profanity/src/data/turkish.json b/packages/glin-profanity/src/data/turkish.json new file mode 100644 index 0000000..8efb7b8 --- /dev/null +++ b/packages/glin-profanity/src/data/turkish.json @@ -0,0 +1,195 @@ +{ + "words": [ + "aardappels afgieteng", + "achter het raam zitten", + "afberen", + "aflebberen", + "afrossen", + "afrukken", + "aftrekken", + "afwerkplaats", + "afzeiken", + "afzuigen", + "anderhalve man en een paardekop", + "anita", + "asbak", + "aso", + "bagger schijten", + "balen", + "bedonderen", + "befborstelg", + "beffen", + "bekken", + "belazeren", + "besodemieterd zijn", + "besodemieteren", + "beurt", + "boemelen", + "boerelul", + "boerenpummelg", + "bokkelul", + "botergeil", + "broekhoesten", + "brugpieperg", + "buffelen", + "buiten de pot piesen", + "da's kloten van de bok", + "de ballen", + "de hoer spelen", + "de hond uitlaten", + "de koffer induiken", + "delg", + "de pijp aan maarten geven", + "de pijp uitgaan", + "dombo", + "draaikontg", + "driehoog achter wonen", + "drolg", + "drooggeiler", + "droogkloot", + "een beurt geven", + "een nummertje maken", + "een wip maken", + "eikel", + "engerd", + "flamoes", + "flikken", + "flikker", + "gadverdamme", + "galbak", + "gat", + "gedoogzone", + "geilneef", + "gesodemieter", + "godverdomme", + "graftak", + "gras maaien", + "gratenkutg", + "greppeldel", + "griet", + "hoempert", + "hoer", + "hoerenbuurt", + "hoerenloper", + "hoerig", + "hol", + "hufter", + "huisdealer", + "johny", + "kanen", + "kettingzeugg", + "klaarkomen", + "klerebeer", + "klojo", + "klooien", + "klootjesvolk", + "klootoog", + "klootzak", + "kloten", + "knor", + "kontg", + "kontneuken", + "krentekakker", + "kut", + "kuttelikkertje", + "kwakkieg", + "liefdesgrot", + "lul", + "lul-de-behanger", + "lulhannes", + "lummel", + "mafketel", + "matennaaierg", + "matje", + "mof", + "mutsg", + "naaien", + "naakt", + "neuken", + "neukstier", + "nicht", + "oetlul", + "opgeilen", + "opkankeren", + "oprotten", + "opsodemieteren", + "op z'n hondjes", + "op z'n sodemieter geven", + "opzouten", + "ouwehoer", + "ouwehoeren", + "ouwe rukker", + "paal", + "paardelul", + "palen", + "penozeg", + "piesen", + "pijpbekkieg", + "pijpen", + "pik", + "pleurislaaier", + "poep", + "poepen", + "poot", + "portiekslet", + "pot", + "potverdorie", + "publiciteitsgeil", + "raaskallen", + "reet", + "reetridder", + "reet trappen, voor zijn", + "remsporeng", + "reutelen", + "rothoer", + "rotzak", + "rukhond", + "rukken", + "schatje", + "schijt", + "schijten", + "schoft", + "schuinsmarcheerder", + "shit", + "slempen", + "sletg", + "sletterig", + "slik mijn zaad", + "snolg", + "spuiten", + "standje", + "standje-69g", + "stoephoer", + "stootje", + "strontg", + "sufferdg", + "tapijtnek", + "teefg", + "temeier", + "teringlijer", + "toeter", + "tongzoeng", + "triootjeg", + "trottoir prostituée", + "trottoirteef", + "vergallen", + "verkloten", + "verneuken", + "viespeuk", + "vingeren", + "vleesroos", + "voor jan lul", + "voor jan-met-de-korte-achternaam", + "watje", + "welzijnsmafia", + "wijf", + "wippen", + "wuftje", + "zaadje", + "zakkenwasser", + "zeiken", + "zeiker", + "zuigen", + "zuiplap" + ] +} diff --git a/packages/glin-profanity/src/filters/Filter.ts b/packages/glin-profanity/src/filters/Filter.ts new file mode 100644 index 0000000..89cac43 --- /dev/null +++ b/packages/glin-profanity/src/filters/Filter.ts @@ -0,0 +1,102 @@ +import dictionary from '../data/dictionary'; +import { Language, CheckProfanityResult } from '../types/types'; + +interface FilterConfig { + languages?: Language[]; + allLanguages?: boolean; + caseSensitive?: boolean; + wordBoundaries?: boolean; + customWords?: string[]; + replaceWith?: string; + severityLevels?: boolean; + ignoreWords?: string[]; + logProfanity?: boolean; +} + +class Filter { + private words: Map; + private caseSensitive: boolean; + private wordBoundaries: boolean; + private replaceWith?: string; + private severityLevels: boolean; + private ignoreWords: Set; + private logProfanity: boolean; + + constructor(config?: FilterConfig) { + let words: string[] = []; + this.caseSensitive = config?.caseSensitive ?? false; + this.wordBoundaries = config?.wordBoundaries ?? true; + this.replaceWith = config?.replaceWith; + this.severityLevels = config?.severityLevels ?? false; + this.ignoreWords = new Set(config?.ignoreWords?.map(word => word.toLowerCase()) || []); + this.logProfanity = config?.logProfanity ?? false; + + if (config?.allLanguages) { + for (const lang in dictionary) { + if (dictionary.hasOwnProperty(lang)) { + words = [...words, ...dictionary[lang as Language]]; + } + } + } else { + const languages = config?.languages || ['english']; + const languagesChecks = new Set(languages); + if (languagesChecks.size !== 0) { + languagesChecks.forEach(lang => { + words = [...words, ...dictionary[lang]]; + }); + } + } + + if (config?.customWords) { + words = [...words, ...config.customWords]; + } + + this.words = new Map(words.map(word => [word, 1])); // Default severity level is 1 + } + + private getRegex(word: string): RegExp { + const flags = this.caseSensitive ? 'g' : 'gi'; + const boundary = this.wordBoundaries ? '\\b' : ''; + return new RegExp(`${boundary}${word.replace(/(\W)/g, '\\$1')}${boundary}`, flags); + } + + isProfane(value: string): boolean { + for (const word of this.words.keys()) { + if (!this.ignoreWords.has(word.toLowerCase()) && this.getRegex(word).test(value)) return true; + } + return false; + } + + checkProfanity(text: string): CheckProfanityResult { + const words = text.split(/\s+/); + const profaneWords: string[] = []; + const severityMap: { [word: string]: number } = {}; + + for (const word of words) { + if (this.words.has(word.toLowerCase()) && !this.ignoreWords.has(word.toLowerCase())) { + profaneWords.push(word); + severityMap[word] = this.words.get(word.toLowerCase())!; + } + } + + if (this.logProfanity && profaneWords.length > 0) { + console.log(`Profane words detected: ${profaneWords.join(', ')}`); + } + + let processedText = text; + if (this.replaceWith) { + for (const word of profaneWords) { + processedText = processedText.replace(this.getRegex(word), this.replaceWith); + } + } + + return { + containsProfanity: profaneWords.length > 0, + profaneWords, + processedText: this.replaceWith ? processedText : undefined, + severityMap: this.severityLevels ? severityMap : undefined, + }; + } +} + +export { Filter }; diff --git a/packages/glin-profanity/src/hooks/useProfanityChecker.ts b/packages/glin-profanity/src/hooks/useProfanityChecker.ts new file mode 100644 index 0000000..3ebfd9e --- /dev/null +++ b/packages/glin-profanity/src/hooks/useProfanityChecker.ts @@ -0,0 +1,44 @@ +import { useState } from 'react'; +import { Filter } from '../filters/Filter'; +import { CheckProfanityResult, Language } from '../types/types'; + +interface ProfanityCheckerConfig { + languages?: Language[]; + allLanguages?: boolean; + caseSensitive?: boolean; + wordBoundaries?: boolean; + customWords?: string[]; + replaceWith?: string; + severityLevels?: boolean; + customActions?: (result: CheckProfanityResult) => void; +} + +export const useProfanityChecker = (config?: ProfanityCheckerConfig) => { + const [result, setResult] = useState(null); + const filter = new Filter(config); + + const checkText = (text: string) => { + const checkResult = filter.checkProfanity(text); + setResult(checkResult); + if (config?.customActions) { + config.customActions(checkResult); + } + }; + + const checkTextAsync = async (text: string) => { + return new Promise((resolve) => { + const checkResult = filter.checkProfanity(text); + setResult(checkResult); + if (config?.customActions) { + config.customActions(checkResult); + } + resolve(checkResult); + }); + }; + + return { + result, + checkText, + checkTextAsync, + }; +}; diff --git a/packages/glin-profanity/src/index.ts b/packages/glin-profanity/src/index.ts new file mode 100644 index 0000000..0704ece --- /dev/null +++ b/packages/glin-profanity/src/index.ts @@ -0,0 +1,3 @@ +export { Filter } from './filters/Filter'; +export { useProfanityChecker } from './hooks/useProfanityChecker'; +export type { Language, CheckProfanityResult } from './types/types'; diff --git a/packages/glin-profanity/src/types/types.ts b/packages/glin-profanity/src/types/types.ts new file mode 100644 index 0000000..39722a0 --- /dev/null +++ b/packages/glin-profanity/src/types/types.ts @@ -0,0 +1,30 @@ +// src/types/types.ts +export interface CheckProfanityResult { + containsProfanity: boolean; + profaneWords: string[]; + processedText?: string; + severityMap?: { [word: string]: number }; +} +export type Language = + | 'arabic' + | 'chinese' + | 'czech' + | 'danish' + | 'english' + | 'esperanto' + | 'finnish' + | 'french' + | 'german' + | 'hindi' + | 'hungarian' + | 'italian' + | 'japanese' + | 'korean' + | 'norwegian' + | 'persian' + | 'polish' + | 'portuguese' + | 'russian' + | 'turkish' + | 'swedish' + | 'thai'; diff --git a/packages/glin-profanity/tsconfig.json b/packages/glin-profanity/tsconfig.json new file mode 100644 index 0000000..7ddfa09 --- /dev/null +++ b/packages/glin-profanity/tsconfig.json @@ -0,0 +1,15 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "./lib", + "rootDir": "./src", + "declaration": true, + "declarationMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "downlevelIteration": true, + "target": "es2015" + }, + "include": ["src/**/*"] + } + \ No newline at end of file