forked from zaclys/searxng
Merge pull request #297 from dalf/proxies
[enh] Implement http proxies for outgoing requests. (see #236)
This commit is contained in:
commit
1f0e6ce65b
|
@ -66,8 +66,10 @@ class SessionSinglePool(requests.Session):
|
||||||
|
|
||||||
|
|
||||||
def request(method, url, **kwargs):
|
def request(method, url, **kwargs):
|
||||||
"""same as requests/requests/api.py request(...) except it use SessionSinglePool"""
|
"""same as requests/requests/api.py request(...) except it use SessionSinglePool and force proxies"""
|
||||||
|
global settings
|
||||||
session = SessionSinglePool()
|
session = SessionSinglePool()
|
||||||
|
kwargs['proxies'] = settings.get('outgoing_proxies', None)
|
||||||
response = session.request(method=method, url=url, **kwargs)
|
response = session.request(method=method, url=url, **kwargs)
|
||||||
session.close()
|
session.close()
|
||||||
return response
|
return response
|
||||||
|
|
|
@ -10,6 +10,13 @@ server:
|
||||||
image_proxy : False # Proxying image results through searx
|
image_proxy : False # Proxying image results through searx
|
||||||
default_locale : "" # Default interface locale - leave blank to detect from browser information or use codes from the 'locales' config section
|
default_locale : "" # Default interface locale - leave blank to detect from browser information or use codes from the 'locales' config section
|
||||||
|
|
||||||
|
# uncomment below section if you want to use a proxy
|
||||||
|
# see http://docs.python-requests.org/en/latest/user/advanced/#proxies
|
||||||
|
# SOCKS proxies are not supported : see https://github.com/kennethreitz/requests/pull/478
|
||||||
|
#outgoing_proxies :
|
||||||
|
# http : http://127.0.0.1:8080
|
||||||
|
# https: http://127.0.0.1:8080
|
||||||
|
|
||||||
# uncomment below section only if you have more than one network interface
|
# uncomment below section only if you have more than one network interface
|
||||||
# which can be the source of outgoing search requests
|
# which can be the source of outgoing search requests
|
||||||
#source_ips:
|
#source_ips:
|
||||||
|
|
|
@ -111,6 +111,8 @@ _category_names = (gettext('files'),
|
||||||
gettext('news'),
|
gettext('news'),
|
||||||
gettext('map'))
|
gettext('map'))
|
||||||
|
|
||||||
|
outgoing_proxies = settings.get('outgoing_proxies', None)
|
||||||
|
|
||||||
|
|
||||||
@babel.localeselector
|
@babel.localeselector
|
||||||
def get_locale():
|
def get_locale():
|
||||||
|
@ -645,7 +647,8 @@ def image_proxy():
|
||||||
resp = requests.get(url,
|
resp = requests.get(url,
|
||||||
stream=True,
|
stream=True,
|
||||||
timeout=settings['server'].get('request_timeout', 2),
|
timeout=settings['server'].get('request_timeout', 2),
|
||||||
headers=headers)
|
headers=headers,
|
||||||
|
proxies=outgoing_proxies)
|
||||||
|
|
||||||
if resp.status_code == 304:
|
if resp.status_code == 304:
|
||||||
return '', resp.status_code
|
return '', resp.status_code
|
||||||
|
|
Loading…
Reference in New Issue