Фильтрация нецензурных слов в сообщениях(комментариях) на сайте.Django

Всем привет! Делаю сайт на Django, где у пользователей есть возможность оставлять комментарии и мне нужно сделать фильтрацию нецензурных слов в этих комментариях. Я покопался в интернетах, но ничего вроде не нашел как это реализовать в Django. Надеюсь кто-нибудь поможет) Заранее спасибо.


Ответы (1 шт):

Автор решения: Smart Beetle

Вот простенький вариант.Он не будет обрабатывать такой вариант: м!а!т!.

def filter_message(message: str):
variants = ['mat', 'abc', 'def', 'no', 'filter'] # непристойные выражения
ln = len(variants)
filtred_message = ''
string = ''
pattern = '*' # чем заменять непристойные выражения
for i in message:
    string += i
    string2 = string.lower()
    
    flag = 0
    for j in variants:
        if not string2 in j:
            flag += 1
        if string2 == j:
            filtred_message += pattern * len(string)
            flag -= 1
            string = ''
            
    if flag == ln:
        filtred_message += string
        string = ''
        
if string2 != '' and string2 not in variants:
    filtred_message += string
elif string2 != '':
    filtred_message += pattern * len(string)
    
return filtred_message

Пару тестов:

print(filter_message('matdef lkjshlkjg abc'))

output: ****** lkjshlkjg ***

print(filter_message('no mats'))

output: ** ***s

print(filter_message('12345'))

output: 12345

→ Ссылка