od-database/search/filter.py
2018-12-02 12:42:57 -05:00

32 lines
821 B
Python

import os
try:
from fold_to_ascii.fold_to_ascii import mapping
except:
from ..fold_to_ascii.fold_to_ascii import mapping
class SearchFilter:
def __init__(self):
self.blacklisted_terms = set()
self.table = str.maketrans(dict(mapping.translate_table))
if os.path.exists("search_blacklist.txt"):
with open("search_blacklist.txt") as f:
self.blacklisted_terms.update(line.strip() for line in f.readlines() if line[0] != "#" and line.strip())
def should_block(self, query) -> bool:
query = query.translate(self.table)
query = query.lower()
for raw_token in query.split():
token = raw_token.strip("\"'/\\").strip()
if token in self.blacklisted_terms:
return True
return False