forked from zaclys/searxng
[enh] add result proxy support - #707
This commit is contained in:
parent
19a6ca0b68
commit
1be6e72d51
|
@ -18,6 +18,12 @@ ui:
|
||||||
default_theme : oscar # ui theme
|
default_theme : oscar # ui theme
|
||||||
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
|
||||||
|
|
||||||
|
# searx supports result proxification using an external service: https://github.com/asciimoo/morty
|
||||||
|
# uncomment below section if you have running morty proxy
|
||||||
|
#result_proxy:
|
||||||
|
# url : http://127.0.0.1:3000/
|
||||||
|
# key : your_morty_proxy_key
|
||||||
|
|
||||||
outgoing: # communication with search engines
|
outgoing: # communication with search engines
|
||||||
request_timeout : 2.0 # seconds
|
request_timeout : 2.0 # seconds
|
||||||
useragent_suffix : "" # suffix of searx_useragent, could contain informations like an email address to the administrator
|
useragent_suffix : "" # suffix of searx_useragent, could contain informations like an email address to the administrator
|
||||||
|
|
|
@ -33,6 +33,9 @@
|
||||||
<span class="label label-default">{{ engine }}</span>
|
<span class="label label-default">{{ engine }}</span>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<small>{{ result_link("https://web.archive.org/web/" + result.url, icon('link') + _('cached'), "text-info") }}</small>
|
<small>{{ result_link("https://web.archive.org/web/" + result.url, icon('link') + _('cached'), "text-info") }}</small>
|
||||||
|
{% if proxify %}
|
||||||
|
<small>{{ result_link(proxify(result.url), icon('sort') + _('proxied'), "text-info") }}</small>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<div class="text-muted"><small>{{ result.pretty_url }}</small></div>
|
<div class="text-muted"><small>{{ result.pretty_url }}</small></div>
|
||||||
{%- endmacro %}
|
{%- endmacro %}
|
||||||
|
@ -44,6 +47,9 @@
|
||||||
<span class="label label-default">{{ engine }}</span>
|
<span class="label label-default">{{ engine }}</span>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<small>{{ result_link("https://web.archive.org/web/" + result.url, icon('link') + _('cached'), "text-info") }}</small>
|
<small>{{ result_link("https://web.archive.org/web/" + result.url, icon('link') + _('cached'), "text-info") }}</small>
|
||||||
|
{% if proxify %}
|
||||||
|
<small>{{ result_link(proxify(result.url), icon('sort') + _('proxied'), "text-info") }}</small>
|
||||||
|
{% endif %}
|
||||||
<div class="text-muted"><small>{{ result.pretty_url }}</small></div>
|
<div class="text-muted"><small>{{ result.pretty_url }}</small></div>
|
||||||
{%- endmacro %}
|
{%- endmacro %}
|
||||||
|
|
||||||
|
|
|
@ -243,6 +243,20 @@ def url_for_theme(endpoint, override_theme=None, **values):
|
||||||
return url_for(endpoint, **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):
|
def image_proxify(url):
|
||||||
|
|
||||||
if url.startswith('//'):
|
if url.startswith('//'):
|
||||||
|
@ -310,6 +324,8 @@ def render(template_name, override_theme=None, **kwargs):
|
||||||
|
|
||||||
kwargs['image_proxify'] = image_proxify
|
kwargs['image_proxify'] = image_proxify
|
||||||
|
|
||||||
|
kwargs['proxify'] = proxify if settings.get('result_proxy') else None
|
||||||
|
|
||||||
kwargs['get_result_template'] = get_result_template
|
kwargs['get_result_template'] = get_result_template
|
||||||
|
|
||||||
kwargs['theme'] = get_current_theme_name(override=override_theme)
|
kwargs['theme'] = get_current_theme_name(override=override_theme)
|
||||||
|
|
Loading…
Reference in New Issue