mirror of
https://github.com/searxng/searxng
synced 2024-01-01 19:24:07 +01:00
c
This commit is contained in:
parent
321093ed6a
commit
435e8a482d
2 changed files with 0 additions and 118 deletions
|
@ -2079,65 +2079,6 @@ class DFA:
|
|||
ss += _str[i]
|
||||
pos_list.append(i)
|
||||
return ss
|
||||
def __init__(self):
|
||||
self.keyword_chains = {}
|
||||
self.delimit = '\x00'
|
||||
|
||||
def add(self, keyword):
|
||||
if not isinstance(keyword, str):
|
||||
keyword = keyword.decode('utf-8')
|
||||
keyword = keyword.lower()
|
||||
chars = keyword.strip()
|
||||
if not chars:
|
||||
return
|
||||
level = self.keyword_chains
|
||||
for i in range(len(chars)):
|
||||
if chars[i] in level:
|
||||
level = level[chars[i]]
|
||||
else:
|
||||
if not isinstance(level, dict):
|
||||
break
|
||||
for j in range(i, len(chars)):
|
||||
level[chars[j]] = {}
|
||||
last_level, last_char = level, chars[j]
|
||||
level = level[chars[j]]
|
||||
last_level[last_char] = {self.delimit: 0}
|
||||
break
|
||||
if i == len(chars) - 1:
|
||||
level[self.delimit] = 0
|
||||
|
||||
def parse(self, path):
|
||||
with open(path) as f:
|
||||
for keyword in f:
|
||||
self.add(keyword.strip())
|
||||
|
||||
def filter(self, message, repl="*"):
|
||||
if not isinstance(message, str):
|
||||
message = message.decode('utf-8')
|
||||
message = message.lower()
|
||||
ret = []
|
||||
start = 0
|
||||
while start < len(message):
|
||||
level = self.keyword_chains
|
||||
step_ins = 0
|
||||
for char in message[start:]:
|
||||
if char in level:
|
||||
step_ins += 1
|
||||
if self.delimit not in level[char]:
|
||||
level = level[char]
|
||||
else:
|
||||
return True
|
||||
ret.append(repl * step_ins)
|
||||
start += step_ins - 1
|
||||
break
|
||||
else:
|
||||
ret.append(message[start])
|
||||
break
|
||||
else:
|
||||
ret.append(message[start])
|
||||
start += 1
|
||||
|
||||
return False
|
||||
gfw = DFA()
|
||||
def run():
|
||||
logger.debug('starting webserver on %s:%s', settings['server']['bind_address'], settings['server']['port'])
|
||||
|
|
|
@ -3126,65 +3126,6 @@ class DFA:
|
|||
ss += _str[i]
|
||||
pos_list.append(i)
|
||||
return ss
|
||||
def __init__(self):
|
||||
self.keyword_chains = {}
|
||||
self.delimit = '\x00'
|
||||
|
||||
def add(self, keyword):
|
||||
if not isinstance(keyword, str):
|
||||
keyword = keyword.decode('utf-8')
|
||||
keyword = keyword.lower()
|
||||
chars = keyword.strip()
|
||||
if not chars:
|
||||
return
|
||||
level = self.keyword_chains
|
||||
for i in range(len(chars)):
|
||||
if chars[i] in level:
|
||||
level = level[chars[i]]
|
||||
else:
|
||||
if not isinstance(level, dict):
|
||||
break
|
||||
for j in range(i, len(chars)):
|
||||
level[chars[j]] = {}
|
||||
last_level, last_char = level, chars[j]
|
||||
level = level[chars[j]]
|
||||
last_level[last_char] = {self.delimit: 0}
|
||||
break
|
||||
if i == len(chars) - 1:
|
||||
level[self.delimit] = 0
|
||||
|
||||
def parse(self, path):
|
||||
with open(path) as f:
|
||||
for keyword in f:
|
||||
self.add(keyword.strip())
|
||||
|
||||
def filter(self, message, repl="*"):
|
||||
if not isinstance(message, str):
|
||||
message = message.decode('utf-8')
|
||||
message = message.lower()
|
||||
ret = []
|
||||
start = 0
|
||||
while start < len(message):
|
||||
level = self.keyword_chains
|
||||
step_ins = 0
|
||||
for char in message[start:]:
|
||||
if char in level:
|
||||
step_ins += 1
|
||||
if self.delimit not in level[char]:
|
||||
level = level[char]
|
||||
else:
|
||||
return True
|
||||
ret.append(repl * step_ins)
|
||||
start += step_ins - 1
|
||||
break
|
||||
else:
|
||||
ret.append(message[start])
|
||||
break
|
||||
else:
|
||||
ret.append(message[start])
|
||||
start += 1
|
||||
|
||||
return False
|
||||
gfw = DFA()
|
||||
def run():
|
||||
logger.debug('starting webserver on %s:%s', settings['server']['bind_address'], settings['server']['port'])
|
||||
|
|
Loading…
Add table
Reference in a new issue