323def initialize(settings_engines=None, settings_outgoing=None):
326 from searx
import settings
330 settings_engines = settings_engines
or settings[
'engines']
331 settings_outgoing = settings_outgoing
or settings[
'outgoing']
336 'enable_http':
False,
337 'verify': settings_outgoing[
'verify'],
338 'enable_http2': settings_outgoing[
'enable_http2'],
339 'max_connections': settings_outgoing[
'pool_connections'],
340 'max_keepalive_connections': settings_outgoing[
'pool_maxsize'],
341 'keepalive_expiry': settings_outgoing[
'keepalive_expiry'],
342 'local_addresses': settings_outgoing[
'source_ips'],
343 'using_tor_proxy': settings_outgoing[
'using_tor_proxy'],
344 'proxies': settings_outgoing[
'proxies'],
345 'max_redirects': settings_outgoing[
'max_redirects'],
346 'retries': settings_outgoing[
'retries'],
347 'retry_on_http_error':
None,
350 def new_network(params, logger_name=None):
351 nonlocal default_params
353 result.update(default_params)
354 result.update(params)
356 result[
'logger_name'] = logger_name
360 nonlocal settings_engines
361 for engine_spec
in settings_engines:
362 engine_name = engine_spec[
'name']
363 engine = engines.get(engine_name)
366 network = getattr(engine,
'network',
None)
367 yield engine_name, engine, network
372 NETWORKS[DEFAULT_NAME] = new_network({}, logger_name=
'default')
373 NETWORKS[
'ipv4'] = new_network({
'local_addresses':
'0.0.0.0'}, logger_name=
'ipv4')
374 NETWORKS[
'ipv6'] = new_network({
'local_addresses':
'::'}, logger_name=
'ipv6')
377 for network_name, network
in settings_outgoing[
'networks'].items():
378 NETWORKS[network_name] = new_network(network, logger_name=network_name)
381 for engine_name, engine, network
in iter_networks():
384 for attribute_name, attribute_value
in default_params.items():
385 if hasattr(engine, attribute_name):
386 network[attribute_name] = getattr(engine, attribute_name)
388 network[attribute_name] = attribute_value
389 NETWORKS[engine_name] = new_network(network, logger_name=engine_name)
390 elif isinstance(network, dict):
391 NETWORKS[engine_name] = new_network(network, logger_name=engine_name)
394 for engine_name, engine, network
in iter_networks():
395 if isinstance(network, str):
396 NETWORKS[engine_name] = NETWORKS[network]
401 if 'image_proxy' not in NETWORKS:
402 image_proxy_params = default_params.copy()
403 image_proxy_params[
'enable_http2'] =
False
404 NETWORKS[
'image_proxy'] = new_network(image_proxy_params, logger_name=
'image_proxy')
__init__(self, enable_http=True, verify=True, enable_http2=False, max_connections=None, max_keepalive_connections=None, keepalive_expiry=None, proxies=None, using_tor_proxy=False, local_addresses=None, retries=0, retry_on_http_error=None, max_redirects=30, logger_name=None)