1234567891011121314151617181920212223242526272829303132333435 |
- # SPDX-License-Identifier: AGPL-3.0-or-later
- # pylint: disable=missing-module-docstring
- from __future__ import annotations
- from hashlib import md5
- import flask
- from searx.data import ahmia_blacklist_loader
- from searx import get_setting
- 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: list = []
- def on_result(_request, _search, result) -> bool:
- if not getattr(result, 'is_onion', None) or not getattr(result, 'parsed_url', None):
- return True
- result_hash = md5(result['parsed_url'].hostname.encode()).hexdigest()
- return result_hash not in ahmia_blacklist
- def init(app=flask.Flask) -> bool: # pylint: disable=unused-argument
- global ahmia_blacklist # pylint: disable=global-statement
- if not get_setting("outgoing.using_tor_proxy"):
- # disable the plugin
- return False
- ahmia_blacklist = ahmia_blacklist_loader()
- return True
|