on master help sign in
[enh] add option to configure proxies per engine - closes #1827
commit4a913247b29286299e678e0756119fb62293760f authorAdam Tauber <asciimoo@gmail.com> dateTue 1 Sep 2020, 15:57 (6 years ago) parentb329058
3 files changed+12−4
docs/dev/engine_overview.rst+6−3 searx/poolrequests.py+2−1 searx/search.py+4
docs/dev/engine_overview.rst+6−3
@@ -49,16 +49,19 @@ offline boolean engine runs offline
4949settings.yml
5050------------
5151
52−======================= =========== ===========================================
52+======================= =========== =============================================
5353argument type information
54−======================= =========== ===========================================
54+======================= =========== =============================================
5555name string name of search-engine
5656engine string name of searx-engine
5757 (filename without ``.py``)
5858shortcut string shortcut of search-engine
5959timeout string specific timeout for search-engine
6060display_error_messages boolean display error messages on the web UI
61−======================= =========== ===========================================
61+proxies dict set proxies for a specific engine
62+ (e.g. ``proxies : {http: socks5://proxy:port,
63+ https: socks5://proxy:port}``)
64+======================= =========== =============================================
6265
6366
6467overrides
searx/poolrequests.py+2−1
@@ -95,7 +95,8 @@ def request(method, url, **kwargs):
9595 session = SessionSinglePool()
9696
9797 # proxies
98− kwargs['proxies'] = settings['outgoing'].get('proxies') or None
98+ if kwargs.get('proxies') is None:
99+ kwargs['proxies'] = settings['outgoing'].get('proxies')
99100
100101 # timeout
101102 if 'timeout' in kwargs:
searx/search.py+4
@@ -70,6 +70,10 @@ def send_http_request(engine, request_params):
7070 verify=request_params['verify']
7171 )
7272
73+ # setting engine based proxies
74+ if hasattr(engine, 'proxies'):
75+ request_args['proxies'] = engine.proxies
76+
7377 # specific type of request (GET or POST)
7478 if request_params['method'] == 'GET':
7579 req = requests_lib.get