summaryrefslogtreecommitdiff
path: root/searx/webapp.py
diff options
context:
space:
mode:
authorAdam Tauber <asciimoo@gmail.com>2016-10-17 00:22:41 +0200
committerAdam Tauber <asciimoo@gmail.com>2016-10-17 00:23:15 +0200
commit1be6e72d517c1651fc466d3222a23dbda0a53c2c (patch)
treef4b25094ada5fafbf08f0d6506b267fb182d24ba /searx/webapp.py
parent19a6ca0b68839e8d8903e99c336e1c1b1df624e1 (diff)
[enh] add result proxy support - #707
Diffstat (limited to 'searx/webapp.py')
-rw-r--r--searx/webapp.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/searx/webapp.py b/searx/webapp.py
index 962367c84..b8d79b56c 100644
--- a/searx/webapp.py
+++ b/searx/webapp.py
@@ -243,6 +243,20 @@ def url_for_theme(endpoint, override_theme=None, **values):
return url_for(endpoint, **values)
+def proxify(url):
+ if url.startswith('//'):
+ url = 'https:' + url
+
+ if not settings.get('result_proxy'):
+ return url
+
+ h = hmac.new(settings['result_proxy']['key'], url, hashlib.sha256).hexdigest()
+
+ return '{0}?{1}'.format(settings['result_proxy']['url'],
+ urlencode(dict(mortyurl=url.encode('utf-8'),
+ mortyhash=h)))
+
+
def image_proxify(url):
if url.startswith('//'):
@@ -310,6 +324,8 @@ def render(template_name, override_theme=None, **kwargs):
kwargs['image_proxify'] = image_proxify
+ kwargs['proxify'] = proxify if settings.get('result_proxy') else None
+
kwargs['get_result_template'] = get_result_template
kwargs['theme'] = get_current_theme_name(override=override_theme)