| import re | |
| BANNED_WORDS = { | |
| "nigger", "nigga", "faggot", "fag", "retard", | |
| "cunt", "slut", "whore", "fuck", "motherfucker", | |
| "kys", "kill yourself", "go die", "end yourself", | |
| "madarchod", "bhenchod", "chutiya", "randi", "gandu", "lund", | |
| "chod", "choda", "khanki", "bhoda", "chudi", "bainchod", | |
| "magir pola", "shuwor", "kuttar baccha", | |
| "sharmuta", "ibn sharmuta", "ya kalb", "ya ibn al kalb", | |
| "puta", "hijo de puta", "maricon", "cabron", | |
| "pute", "salope", "connard", | |
| "hurensohn", "fotze", | |
| "putang ina", "gago", | |
| "anjing", "bangsat", | |
| "orospu", "orospu cocugu", | |
| } | |
| _PATTERN = re.compile( | |
| r"\b(" + "|".join(re.escape(word) for word in BANNED_WORDS) + r")\b", | |
| re.IGNORECASE, | |
| ) | |
| _CONTEXT_PATTERN = re.compile( | |
| r"\b(bc|mc)\b(?=\s+\w)|\b\w+\s+(bc|mc)\b", | |
| re.IGNORECASE, | |
| ) | |
| def contains_banned_words(text): | |
| if not text: | |
| return False | |
| return bool(_PATTERN.search(text) or _CONTEXT_PATTERN.search(text)) | |