|
@@ -42,6 +42,7 @@ ENGINE_DEFAULT_ARGS = {
|
|
|
"safesearch": False,
|
|
|
"time_range_support": False,
|
|
|
"enable_http": False,
|
|
|
+ "using_tor_proxy": False,
|
|
|
"display_error_messages": True,
|
|
|
"tokens": [],
|
|
|
"about": {},
|
|
@@ -230,8 +231,8 @@ def set_language_attributes(engine: Engine):
|
|
|
)
|
|
|
|
|
|
|
|
|
-def update_attributes_for_tor(engine):
|
|
|
- if settings['outgoing'].get('using_tor_proxy') and hasattr(engine, 'onion_url'):
|
|
|
+def update_attributes_for_tor(engine: Engine) -> bool:
|
|
|
+ if using_tor_proxy(engine) and hasattr(engine, 'onion_url'):
|
|
|
engine.search_url = engine.onion_url + getattr(engine, 'search_path', '')
|
|
|
engine.timeout += settings['outgoing'].get('extra_proxy_timeout', 0)
|
|
|
|
|
@@ -249,13 +250,18 @@ def is_missing_required_attributes(engine):
|
|
|
return missing
|
|
|
|
|
|
|
|
|
+def using_tor_proxy(engine: Engine):
|
|
|
+ """Return True if the engine configuration declares to use Tor."""
|
|
|
+ return settings['outgoing'].get('using_tor_proxy') or getattr(engine, 'using_tor_proxy', False)
|
|
|
+
|
|
|
+
|
|
|
def is_engine_active(engine: Engine):
|
|
|
# check if engine is inactive
|
|
|
if engine.inactive is True:
|
|
|
return False
|
|
|
|
|
|
# exclude onion engines if not using tor
|
|
|
- if 'onions' in engine.categories and not settings['outgoing'].get('using_tor_proxy'):
|
|
|
+ if 'onions' in engine.categories and not using_tor_proxy(engine):
|
|
|
return False
|
|
|
|
|
|
return True
|