[enh] add result proxy support - #707

This commit is contained in:
Adam Tauber 2016-10-17 00:22:41 +02:00
parent 19a6ca0b68
commit 1be6e72d51
3 changed files with 28 additions and 0 deletions

View file

@ -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)