@@ -243,6 +243,20 @@ def url_for_theme(endpoint, override_theme=None, **values):
243243 return url_for(endpoint, **values)
244244
245245
246+def proxify(url):
247+ if url.startswith('//'):
248+ url = 'https:' + url
249+
250+ if not settings.get('result_proxy'):
251+ return url
252+
253+ h = hmac.new(settings['result_proxy']['key'], url, hashlib.sha256).hexdigest()
254+
255+ return '{0}?{1}'.format(settings['result_proxy']['url'],
256+ urlencode(dict(mortyurl=url.encode('utf-8'),
257+ mortyhash=h)))
258+
259+
246260def image_proxify(url):
247261
248262 if url.startswith('//'):
@@ -310,6 +324,8 @@ def render(template_name, override_theme=None, **kwargs):
310324
311325 kwargs['image_proxify'] = image_proxify
312326
327+ kwargs['proxify'] = proxify if settings.get('result_proxy') else None
328+
313329 kwargs['get_result_template'] = get_result_template
314330
315331 kwargs['theme'] = get_current_theme_name(override=override_theme)