logo

searx

My custom branche(s) on searx, a meta-search engine git clone https://hacktivis.me/git/searx.git
commit: cde37be4f594451c1b791b7a3a66d78c2bc44d54
parent 33516256fd60d5bf6dcdf38c8a31f4038ecf0524
Author: Alexandre Flament <alex@al-f.net>
Date:   Sat, 25 Apr 2015 11:44:53 +0200

[enh] basic support for http proxy (see #236)

Diffstat:

Msearx/poolrequests.py4+++-
Msearx/settings.yml7+++++++
Msearx/webapp.py4+++-
3 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/searx/poolrequests.py b/searx/poolrequests.py @@ -66,8 +66,10 @@ class SessionSinglePool(requests.Session): 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() + kwargs['proxies'] = settings.get('outgoing_proxies', None) response = session.request(method=method, url=url, **kwargs) session.close() return response diff --git a/searx/settings.yml b/searx/settings.yml @@ -10,6 +10,13 @@ server: 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 +# 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 # which can be the source of outgoing search requests #source_ips: diff --git a/searx/webapp.py b/searx/webapp.py @@ -110,6 +110,7 @@ _category_names = (gettext('files'), gettext('news'), gettext('map')) +outgoing_proxies = settings.get('outgoing_proxies', None) @babel.localeselector def get_locale(): @@ -638,7 +639,8 @@ def image_proxy(): resp = requests.get(url, stream=True, timeout=settings['server'].get('request_timeout', 2), - headers=headers) + headers=headers, + proxies=outgoing_proxies) if resp.status_code == 304: return '', resp.status_code