123456789101112131415161718192021222324252627282930313233343536 |
- '''
- SPDX-License-Identifier: AGPL-3.0-or-later
- '''
- from hashlib import md5
- from os.path import join
- from urllib.parse import urlparse
- from searx import searx_dir
- name = "Ahmia blacklist"
- description = "Filter out onion results that appear in Ahmia's blacklist. (See https://ahmia.fi/blacklist)"
- default_on = True
- preference_section = 'onions'
- ahmia_blacklist = None
- def get_ahmia_blacklist():
- global ahmia_blacklist
- if not ahmia_blacklist:
- with open(join(join(searx_dir, "data"), "ahmia_blacklist.txt"), 'r') as f:
- ahmia_blacklist = f.read().split()
- return ahmia_blacklist
- def not_blacklisted(result):
- if not result.get('is_onion'):
- return True
- result_hash = md5(urlparse(result.get('url')).hostname.encode()).hexdigest()
- return result_hash not in get_ahmia_blacklist()
- def post_search(request, search):
- filtered_results = list(filter(not_blacklisted, search.result_container._merged_results))
- search.result_container._merged_results = filtered_results
- return True
|