Фильтрация нецензурных слов в сообщениях(комментариях) на сайте.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