mirror of
https://github.com/searxng/searxng
synced 2024-11-09 01:10:26 +00:00
1ec325adcc
In order to be able to meet the outstanding requirements, the implementation is modularized and supplemented with documentation. This patch does not contain functional change, except it fixes issue #2455 ---- Aktivate limiter in the settings.yml and simulate a bot request by:: curl -H 'Accept-Language: de-DE,en-US;q=0.7,en;q=0.3' \ -H 'Accept: text/html' -H 'User-Agent: xyz' \ -H 'Accept-Encoding: gzip' \ 'http://127.0.0.1:8888/search?q=foo' In the LOG: DEBUG searx.botdetection.link_token : missing ping for this request: ..... Since ``BURST_MAX_SUSPICIOUS = 2`` you can repeat the query above two time before you get a "Too Many Requests" response. Closes: https://github.com/searxng/searxng/issues/2455 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
87 lines
4.3 KiB
HTML
87 lines
4.3 KiB
HTML
<!DOCTYPE html>
|
||
<html class="no-js theme-{{ preferences.get_value('simple_style') or 'auto' }} center-aligment-{{ preferences.get_value('center_alignment') and 'yes' or 'no' }}" lang="{{ locale_rfc5646 }}" {% if rtl %} dir="rtl"{% endif %}>
|
||
<head>
|
||
<meta charset="UTF-8" />
|
||
<meta name="description" content="SearXNG — a privacy-respecting, open metasearch engine">
|
||
<meta name="keywords" content="SearXNG, search, search engine, metasearch, meta search">
|
||
<meta name="generator" content="searxng/{{ searx_version }}">
|
||
<meta name="referrer" content="no-referrer">
|
||
<meta name="robots" content="noarchive">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<meta name="HandheldFriendly" content="True">
|
||
<meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1">
|
||
<title>{% block title %}{% endblock %}{{ instance_name }}</title>
|
||
{% block meta %}{% endblock %}
|
||
{% if rtl %}
|
||
<link rel="stylesheet" href="{{ url_for('static', filename='css/searxng-rtl.min.css') }}" type="text/css" media="screen" />
|
||
{% else %}
|
||
<link rel="stylesheet" href="{{ url_for('static', filename='css/searxng.min.css') }}" type="text/css" media="screen" />
|
||
{% endif %}
|
||
{% if get_setting('server.limiter') %}
|
||
<link rel="stylesheet" href="{{ url_for('client_token', token=link_token) }}" type="text/css" />
|
||
{% endif %}
|
||
{% block styles %}{% endblock %}
|
||
<!--[if gte IE 9]>-->
|
||
<script src="{{ url_for('static', filename='js/searxng.head.min.js') }}" client_settings="{{ client_settings }}"></script>
|
||
<!--<![endif]-->
|
||
{% block head %}
|
||
<link title="{{ instance_name }}" type="application/opensearchdescription+xml" rel="search" href="{{ opensearch_url }}"/>
|
||
{% endblock %}
|
||
<link rel="icon" href="{{ url_for('static', filename='img/favicon.png') }}" sizes="any">
|
||
<link rel="icon" href="{{ url_for('static', filename='img/favicon.svg') }}" type="image/svg+xml">
|
||
</head>
|
||
<body class="{{ endpoint }}_endpoint" >
|
||
<main id="main_{{ self._TemplateReference__context.name|replace("simple/", "")|replace(".html", "") }}" class="{{body_class}}">
|
||
{% if errors %}
|
||
<div class="dialog-error" role="alert">
|
||
<a href="#" class="close" aria-label="close" title="close">×</a>
|
||
<ul>
|
||
{% for message in errors %}
|
||
<li>{{ message }}</li>
|
||
{% endfor %}
|
||
</ul>
|
||
</div>
|
||
{% endif %}
|
||
|
||
<nav id="links_on_top">
|
||
{%- from 'simple/icons.html' import icon_big -%}
|
||
{%- block linkto_about -%}
|
||
<a href="{{ url_for('info', pagename='about') }}" class="link_on_top_about">{{ icon_big('information-circle-outline') }}<span>{{ _('About') }}</span></a>
|
||
{%- endblock -%}
|
||
{%- block linkto_donate -%}
|
||
{%- if donation_url -%}
|
||
<a href="{{ donation_url }}" class="link_on_top_donate">{{ icon_big('heart-outline') }}<span>{{ _('Donate') }}</span></a>
|
||
{%- endif -%}
|
||
{%- endblock -%}
|
||
{%- block linkto_preferences -%}
|
||
<a href="{{ url_for('preferences') }}" class="link_on_top_preferences">{{ icon_big('menu-outline') }}<span>{{ _('Preferences') }}</span></a>
|
||
{%- endblock -%}
|
||
</nav>
|
||
{% block header %}
|
||
{% endblock %}
|
||
{% block content %}
|
||
{% endblock %}
|
||
</main>
|
||
<footer>
|
||
<p>
|
||
{{ _('Powered by') }} <a href="{{ url_for('info', pagename='about') }}">searxng</a> - {{ searx_version }} — {{ _('a privacy-respecting, open metasearch engine') }}<br/>
|
||
<a href="{{ searx_git_url }}">{{ _('Source code') }}</a>
|
||
| <a href="{{ get_setting('brand.issue_url') }}">{{ _('Issue tracker') }}</a>
|
||
{% if enable_metrics %}| <a href="{{ url_for('stats') }}">{{ _('Engine stats') }}</a>{% endif %}
|
||
{% if get_setting('brand.public_instances') %}
|
||
| <a href="{{ get_setting('brand.public_instances') }}">{{ _('Public instances') }}</a>
|
||
{% endif %}
|
||
{% if get_setting('general.privacypolicy_url') %}
|
||
| <a href="{{ get_setting('general.privacypolicy_url') }}">{{ _('Privacy policy') }}</a>
|
||
{% endif %}
|
||
{% if get_setting('general.contact_url') %}
|
||
| <a href="{{ get_setting('general.contact_url') }}">{{ _('Contact instance maintainer') }}</a>
|
||
{% endif %}
|
||
</p>
|
||
</footer>
|
||
<!--[if gte IE 9]>-->
|
||
<script src="{{ url_for('static', filename='js/searxng.min.js') }}"></script>
|
||
<!--<![endif]-->
|
||
</body>
|
||
</html>
|