mirror of
https://github.com/searxng/searxng
synced 2024-01-01 18:24:07 +00:00
c3daa08537
Xpath engine and results template changed to account for the fact that archive.org doesn't cache .onions, though some onion engines migth have their own cache. Disabled by default. Can be enabled by setting the SOCKS proxies to wherever Tor is listening and setting using_tor_proxy as True. Requires Tor and updating packages. To avoid manually adding the timeout on each engine, you can set extra_proxy_timeout to account for Tor's (or whatever proxy used) extra time.
121 lines
5.0 KiB
HTML
121 lines
5.0 KiB
HTML
<!-- Draw glyphicon icon from bootstrap-theme -->
|
|
{% macro icon(action) -%}
|
|
<span class="glyphicon glyphicon-{{ action }}"></span>
|
|
{%- endmacro %}
|
|
|
|
<!-- Draw favicon -->
|
|
{% macro draw_favicon(favicon) -%}
|
|
<img width="32" height="32" class="favicon" src="{{ url_for('static', filename='themes/oscar/img/icons/' + favicon + '.png') }}" alt="{{ favicon }}" />
|
|
{%- endmacro %}
|
|
|
|
{%- macro result_link(url, title, classes='', id='') -%}
|
|
<a href="{{ url }}" {% if classes %}class="{{ classes }}" {% endif %}{% if results_on_new_tab %}target="_blank" rel="noopener noreferrer"{% else %}rel="noreferrer"{% endif %}{% if id %} aria-labelledby="result-{{id}}"{%endif%}>{{ title }}</a>
|
|
{%- endmacro -%}
|
|
|
|
<!-- Draw result header -->
|
|
{% macro result_header(result, favicons, id) -%}
|
|
<h4 class="result_header" id="result-{{id}}">{% if result.engine~".png" in favicons %}{{ draw_favicon(result.engine) }} {% endif %}{% if result.url %}{{ result_link(result.url, result.title|safe, id=id) }}{% else %}{{ result.title|safe}}{% endif %}</h4>
|
|
{%- endmacro %}
|
|
|
|
<!-- Draw result sub header -->
|
|
{% macro result_sub_header(result, id) -%}
|
|
{% if result.publishedDate %}<time class="text-muted" datetime="{{ result.pubdate }}" >{{ result.publishedDate }}</time>{% endif %}
|
|
{% if result.magnetlink %}<small> • {{ result_link(result.magnetlink, icon('magnet') + _('magnet link'), "magnetlink", id) }}</small>{% endif %}
|
|
{% if result.torrentfile %}<small> • {{ result_link(result.torrentfile, icon('download-alt') + _('torrent file'), "torrentfile", id) }}</small>{% endif %}
|
|
{%- endmacro %}
|
|
|
|
<!-- Draw result footer -->
|
|
{% macro result_footer(result, id) -%}
|
|
<div class="clearfix"></div>{{- "" -}}
|
|
<div class="pull-right">
|
|
{%- for engine in result.engines -%}
|
|
<span class="label label-default">{{ engine }}</span>
|
|
{%- endfor -%}
|
|
{%- if result.url -%}
|
|
{% if result.cached_url %}
|
|
<small>{{ result_link(result.cached_url, icon('link') + _('cached'), "text-info", id) }}</small>
|
|
{% elif not result.is_onion %}
|
|
<small>{{ result_link("https://web.archive.org/web/" + result.url, icon('link') + _('cached'), "text-info", id) }}</small>
|
|
{% endif %}
|
|
{%- endif -%}
|
|
{%- if proxify -%}
|
|
<small>{{ result_link(proxify(result.url), icon('sort') + _('proxied'), "text-info", id) }}</small>
|
|
{%- endif -%}
|
|
</div>
|
|
{%- if result.pretty_url -%}
|
|
<div class="external-link">{{ result.pretty_url }}</div>
|
|
{%- endif -%}
|
|
{%- endmacro %}
|
|
|
|
<!-- Draw result footer -->
|
|
{% macro result_footer_rtl(result, id) -%}
|
|
<div class="clearfix"></div>{{- "" -}}
|
|
{% for engine in result.engines -%}
|
|
<span class="label label-default">{{ engine }}</span>
|
|
{%- endfor %}
|
|
{%- if result.url -%}
|
|
{% if result.cached_url %}
|
|
<small>{{ result_link(result.cached_url, icon('link') + _('cached'), "text-info", id) }}</small>
|
|
{% elif not result.is_onion %}
|
|
<small>{{ result_link("https://web.archive.org/web/" + result.url, icon('link') + _('cached'), "text-info", id) }}</small>
|
|
{% endif %}
|
|
{%- endif -%}
|
|
{% if proxify -%}
|
|
<small>{{ result_link(proxify(result.url), icon('sort') + _('proxied'), "text-info", id) }}</small>
|
|
{%- endif %}
|
|
{%- if result.pretty_url -%}
|
|
<div class="external-link">{{ result.pretty_url }}</div>
|
|
{%- endif %}
|
|
{%- endmacro %}
|
|
|
|
{% macro preferences_item_header(info, label, rtl, id) -%}
|
|
{% if rtl %}
|
|
<div class="row form-group">
|
|
<label class="col-sm-3 col-md-2 pull-right"{% if id %} for="{{id}}"{% endif %}>{{ label }}</label>
|
|
<span class="col-sm-5 col-md-6 help-block pull-left">{{ info }}</span>
|
|
<div class="col-sm-4 col-md-4">
|
|
{% else %}
|
|
<div class="row form-group">
|
|
<label class="col-sm-3 col-md-2"{% if id %} for="{{id}}"{% endif %}>{{ label }}</label>
|
|
<div class="col-sm-4 col-md-4">
|
|
{% endif %}
|
|
{%- endmacro %}
|
|
|
|
{% macro preferences_item_footer(info, label, rtl) -%}
|
|
{% if rtl %}
|
|
</div>
|
|
</div>
|
|
{% else %}
|
|
</div>
|
|
<span class="col-sm-5 col-md-6 help-block">{{ info }}</span>
|
|
</div>
|
|
{% endif %}
|
|
{%- endmacro %}
|
|
|
|
{% macro custom_select_class(rtl) -%}
|
|
custom-select{% if rtl %}-rtl{% endif %}
|
|
{%- endmacro %}
|
|
|
|
{% macro checkbox_toggle(id, blocked) -%}
|
|
<div class="onoffswitch">
|
|
<input type="checkbox" id="{{ id }}" name="{{ id }}"{% if blocked %} checked="checked"{% endif %} class="onoffswitch-checkbox">
|
|
<label class="onoffswitch-label" for="{{ id }}">
|
|
<span class="onoffswitch-inner"></span>
|
|
<span class="onoffswitch-switch"></span>
|
|
</label>
|
|
<label class="visually-hidden" for="{{ id }}">{{ _('Allow') }}</label>
|
|
</div>
|
|
{%- endmacro %}
|
|
|
|
{% macro support_toggle(supports) -%}
|
|
{% if supports %}
|
|
<span class="label label-success">
|
|
{{ _("supported") }}
|
|
</span>
|
|
{% else %}
|
|
<span class="label label-danger">
|
|
{{ _("not supported") }}
|
|
</span>
|
|
{% endif %}
|
|
{%- endmacro %}
|