[enh] basic support for http proxy (see #236)
This commit is contained in:
		
							parent
							
								
									33516256fd
								
							
						
					
					
						commit
						cde37be4f5
					
				| @ -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: | ||||||
|  | |||||||
| @ -110,6 +110,7 @@ _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(): | ||||||
| @ -638,7 +639,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
	
	Block a user