@@ -29,6 +29,7 @@ import os
29from datetime import datetime, timedelta
29from datetime import datetime, timedelta
30from requests import get as http_get
30from requests import get as http_get
31from itertools import chain
31from itertools import chain
32+from urllib import urlencode
32from flask import (
33from flask import (
33 Flask, request, render_template, url_for, Response, make_response,
34 Flask, request, render_template, url_for, Response, make_response,
34 redirect, send_from_directory
35 redirect, send_from_directory
@@ -204,6 +205,18 @@ def url_for_theme(endpoint, override_theme=None, **values):
204 return url_for(endpoint, **values)
205 return url_for(endpoint, **values)
208+def image_proxify(url):
210+ if url.startswith('//'):
211+ url = 'https:' + url
213+ if not settings['server'].get('image_proxy') and not request.cookies.get('image_proxy'):
216+ return '{0}?{1}'.format(url_for('image_proxy'),
217+ urlencode(dict(url=url)))
207def render(template_name, override_theme=None, **kwargs):
220def render(template_name, override_theme=None, **kwargs):
208 blocked_engines = request.cookies.get('blocked_engines', '').split(',')
221 blocked_engines = request.cookies.get('blocked_engines', '').split(',')
@@ -250,6 +263,8 @@ def render(template_name, override_theme=None, **kwargs):
250 # override url_for function in templates
263 # override url_for function in templates
251 kwargs['url_for'] = url_for_theme
264 kwargs['url_for'] = url_for_theme
266+ kwargs['image_proxify'] = image_proxify
253 kwargs['get_result_template'] = get_result_template
268 kwargs['get_result_template'] = get_result_template
255 kwargs['theme'] = get_current_theme_name(override=override_theme)
270 kwargs['theme'] = get_current_theme_name(override=override_theme)