[ChOp] Add safe way to handle multiword badwords
parent
19725c6d6d
commit
12ca14ad3a
16
chop.py
16
chop.py
|
@ -14,20 +14,20 @@ badword_list = web.get("http://sfan5.minetest.net/badwords.txt")
|
||||||
def num_badwords(sentence):
|
def num_badwords(sentence):
|
||||||
badwords = 0
|
badwords = 0
|
||||||
for bwl in badword_list.split("\n"):
|
for bwl in badword_list.split("\n"):
|
||||||
arg = bwl.split(" ")
|
args = bwl.split(" ")
|
||||||
if len(arg) < 2: continue
|
if len(args) < 2: continue
|
||||||
arg[1] = arg[1].rstrip("\n\r")
|
arg = ' '.join(args[1]).rstrip("\n\r")
|
||||||
if arg[0] == "regex": rgx = re.compile(arg[1])
|
if args[0] == "regex": rgx = re.compile(arg)
|
||||||
for word in sentence.split(" "):
|
for word in sentence.split(" "):
|
||||||
word = word.rstrip(",.;:")
|
word = word.rstrip(",.;:")
|
||||||
word = word.lstrip(",.;:")
|
word = word.lstrip(",.;:")
|
||||||
if arg[0] == "raw":
|
if args[0] == "raw":
|
||||||
if word.lower() == arg[1].lower():
|
if word.lower() == arg.lower():
|
||||||
badwords += 1
|
badwords += 1
|
||||||
elif arg[0] == "regex":
|
elif args[0] == "regex":
|
||||||
if not rgx.match(word) == None:
|
if not rgx.match(word) == None:
|
||||||
badwords += 1
|
badwords += 1
|
||||||
if arg[0] == "regex": del rgx
|
if args[0] == "regex": del rgx
|
||||||
|
|
||||||
return badwords
|
return badwords
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue