Compare commits

..

1 Commits

Author SHA1 Message Date
dependabot[bot] c657ba4d20
Bump sphinx from 5.3.0 to 6.1.3
Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 5.3.0 to 6.1.3.
- [Release notes](https://github.com/sphinx-doc/sphinx/releases)
- [Changelog](https://github.com/sphinx-doc/sphinx/blob/master/CHANGES)
- [Commits](https://github.com/sphinx-doc/sphinx/compare/v5.3.0...v6.1.3)

---
updated-dependencies:
- dependency-name: sphinx
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
1 year ago

2
.gitignore vendored

@ -21,5 +21,3 @@ gh-pages/
/node_modules/ /node_modules/
.idea/ .idea/
searx/version_frozen.py

@ -1,3 +1,3 @@
[weblate] [weblate]
url = https://translate.codeberg.org/api/ url = https://weblate.bubu1.eu/api/
translation = searxng/searxng translation = searxng/searxng

@ -166,5 +166,4 @@ features or generally made searx better:
- Sam A. `<https://samsapti.dev>`_ - Sam A. `<https://samsapti.dev>`_
- @XavierHorwood - @XavierHorwood
- Ahmad Alkadri `<https://github.com/ahmad-alkadri>`_ - Ahmad Alkadri `<https://github.com/ahmad-alkadri>`_
- Milad Laly @Milad-Laly - Milad Laly @Milad-Laly
- @llmII

@ -65,7 +65,6 @@ RUN su searxng -c "/usr/bin/python3 -m compileall -q searx" \
ARG LABEL_DATE= ARG LABEL_DATE=
ARG GIT_URL=unknown ARG GIT_URL=unknown
ARG SEARXNG_GIT_VERSION=unknown ARG SEARXNG_GIT_VERSION=unknown
ARG SEARXNG_DOCKER_TAG=unknown
ARG LABEL_VCS_REF= ARG LABEL_VCS_REF=
ARG LABEL_VCS_URL= ARG LABEL_VCS_URL=
LABEL maintainer="searxng <${GIT_URL}>" \ LABEL maintainer="searxng <${GIT_URL}>" \
@ -80,7 +79,7 @@ LABEL maintainer="searxng <${GIT_URL}>" \
org.label-schema.build-date="${LABEL_DATE}" \ org.label-schema.build-date="${LABEL_DATE}" \
org.label-schema.usage="https://github.com/searxng/searxng-docker" \ org.label-schema.usage="https://github.com/searxng/searxng-docker" \
org.opencontainers.image.title="searxng" \ org.opencontainers.image.title="searxng" \
org.opencontainers.image.version="${SEARXNG_DOCKER_TAG}" \ org.opencontainers.image.version="${SEARXNG_GIT_VERSION}" \
org.opencontainers.image.url="${LABEL_VCS_URL}" \ org.opencontainers.image.url="${LABEL_VCS_URL}" \
org.opencontainers.image.revision=${LABEL_VCS_REF} \ org.opencontainers.image.revision=${LABEL_VCS_REF} \
org.opencontainers.image.source=${LABEL_VCS_URL} \ org.opencontainers.image.source=${LABEL_VCS_URL} \

@ -59,8 +59,8 @@ our homepage_.
.. |commits| image:: https://img.shields.io/github/commit-activity/y/searxng/searxng?color=yellow&label=commits .. |commits| image:: https://img.shields.io/github/commit-activity/y/searxng/searxng?color=yellow&label=commits
:target: https://github.com/searxng/searxng/commits/master :target: https://github.com/searxng/searxng/commits/master
.. |weblate| image:: https://translate.codeberg.org/widgets/searxng/-/searxng/svg-badge.svg .. |weblate| image:: https://weblate.bubu1.eu/widgets/searxng/-/searxng/svg-badge.svg
:target: https://translate.codeberg.org/projects/searxng/ :target: https://weblate.bubu1.eu/projects/searxng/
Contact Contact
@ -134,7 +134,7 @@ Contributing is easier
.. _Morty: https://github.com/asciimoo/morty .. _Morty: https://github.com/asciimoo/morty
.. _Filtron: https://github.com/searxng/filtron .. _Filtron: https://github.com/searxng/filtron
.. _limiter: https://docs.searxng.org/src/searx.plugins.limiter.html .. _limiter: https://docs.searxng.org/src/searx.plugins.limiter.html
.. _Weblate: https://translate.codeberg.org/projects/searxng/searxng/ .. _Weblate: https://weblate.bubu1.eu/projects/searxng/searxng/
.. _Development Quickstart: https://docs.searxng.org/dev/quickstart.html .. _Development Quickstart: https://docs.searxng.org/dev/quickstart.html
@ -142,10 +142,10 @@ Translations
============ ============
We need translators, suggestions are welcome at We need translators, suggestions are welcome at
https://translate.codeberg.org/projects/searxng/searxng/ https://weblate.bubu1.eu/projects/searxng/searxng/
.. figure:: https://translate.codeberg.org/widgets/searxng/-/multi-auto.svg .. figure:: https://weblate.bubu1.eu/widgets/searxng/-/multi-auto.svg
:target: https://translate.codeberg.org/projects/searxng/ :target: https://weblate.bubu1.eu/projects/searxng/
Make a donation Make a donation

@ -61,12 +61,6 @@ echo "SearXNG version ${SEARXNG_VERSION}"
# helpers to update the configuration files # helpers to update the configuration files
patch_uwsgi_settings() { patch_uwsgi_settings() {
CONF="$1" CONF="$1"
# update uwsg.ini
sed -i \
-e "s|workers = .*|workers = ${UWSGI_WORKERS:-%k}|g" \
-e "s|threads = .*|threads = ${UWSGI_THREADS:-4}|g" \
"${CONF}"
} }
patch_searxng_settings() { patch_searxng_settings() {

@ -4,15 +4,15 @@
Translation Translation
=========== ===========
.. _translate.codeberg.org: https://translate.codeberg.org/projects/searxng/ .. _weblate.bubu1.eu: https://weblate.bubu1.eu/projects/searxng/
.. _Weblate: https://docs.weblate.org .. _Weblate: https://docs.weblate.org
.. _translations branch: https://github.com/searxng/searxng/tree/translations .. _translations branch: https://github.com/searxng/searxng/tree/translations
.. _orphan branch: https://git-scm.com/docs/git-checkout#Documentation/git-checkout.txt---orphanltnewbranchgt .. _orphan branch: https://git-scm.com/docs/git-checkout#Documentation/git-checkout.txt---orphanltnewbranchgt
.. _Weblate repository: https://translate.codeberg.org/projects/searxng/searxng/#repository .. _Weblate repository: https://weblate.bubu1.eu/projects/searxng/searxng/#repository
.. _wlc: https://docs.weblate.org/en/latest/wlc.html .. _wlc: https://docs.weblate.org/en/latest/wlc.html
.. |translated| image:: https://translate.codeberg.org/widgets/searxng/-/searxng/svg-badge.svg .. |translated| image:: https://weblate.bubu1.eu/widgets/searxng/-/searxng/svg-badge.svg
:target: https://translate.codeberg.org/projects/searxng/ :target: https://weblate.bubu1.eu/projects/searxng/
.. sidebar:: |translated| .. sidebar:: |translated|
@ -24,11 +24,11 @@ Translation
- Babel Command-Line: `pybabel <http://babel.pocoo.org/en/latest/cmdline.html>`_ - Babel Command-Line: `pybabel <http://babel.pocoo.org/en/latest/cmdline.html>`_
- `weblate workflow <https://docs.weblate.org/en/latest/workflows.html>`_ - `weblate workflow <https://docs.weblate.org/en/latest/workflows.html>`_
Translation takes place on translate.codeberg.org_. Translation takes place on weblate.bubu1.eu_.
Translations which has been added by translators on the translate.codeberg.org_ UI are Translations which has been added by translators on the weblate.bubu1.eu_ UI are
committed to Weblate's counterpart of the SearXNG *origin* repository which is committed to Weblate's counterpart of the SearXNG *origin* repository which is
located at ``https://translate.codeberg.org/git/searxng/searxng``. located at ``https://weblate.bubu1.eu/git/searxng/searxng``.
There is no need to clone this repository, :ref:`SearXNG Weblate workflow` take There is no need to clone this repository, :ref:`SearXNG Weblate workflow` take
care of the synchronization with the *origin*. To avoid merging commits from care of the synchronization with the *origin*. To avoid merging commits from
@ -68,7 +68,7 @@ wlc
=== ===
.. _wlc configuration: https://docs.weblate.org/en/latest/wlc.html#wlc-config .. _wlc configuration: https://docs.weblate.org/en/latest/wlc.html#wlc-config
.. _API key: https://translate.codeberg.org/accounts/profile/#api .. _API key: https://weblate.bubu1.eu/accounts/profile/#api
All weblate integration is done by GitHub workflows, but if you want to use wlc_, All weblate integration is done by GitHub workflows, but if you want to use wlc_,
copy this content into `wlc configuration`_ in your HOME ``~/.config/weblate`` copy this content into `wlc configuration`_ in your HOME ``~/.config/weblate``
@ -76,6 +76,6 @@ copy this content into `wlc configuration`_ in your HOME ``~/.config/weblate``
.. code-block:: ini .. code-block:: ini
[keys] [keys]
https://translate.codeberg.org/api/ = APIKEY https://weblate.bubu1.eu/api/ = APIKEY
Replace ``APIKEY`` by your `API key`_. Replace ``APIKEY`` by your `API key`_.

@ -190,11 +190,11 @@ weblate.translations.worktree() {
# 'translations' from Weblate's counterpart (weblate) of the SearXNG # 'translations' from Weblate's counterpart (weblate) of the SearXNG
# (origin). # (origin).
# #
# remote weblate https://translate.codeberg.org/git/searxng/searxng/ # remote weblate https://weblate.bubu1.eu/git/searxng/searxng/
( set -e ( set -e
if ! git remote get-url weblate 2> /dev/null; then if ! git remote get-url weblate 2> /dev/null; then
git remote add weblate https://translate.codeberg.org/git/searxng/searxng/ git remote add weblate https://weblate.bubu1.eu/git/searxng/searxng/
fi fi
if [ -d "${TRANSLATIONS_WORKTREE}" ]; then if [ -d "${TRANSLATIONS_WORKTREE}" ]; then
pushd . pushd .
@ -478,7 +478,7 @@ docker.build() {
eval "$(python -m searx.version)" eval "$(python -m searx.version)"
# Get the last git commit id # Get the last git commit id
VERSION_GITCOMMIT=$(echo "$VERSION_TAG" | cut -d+ -f2) VERSION_GITCOMMIT=$(echo "$VERSION_STRING" | cut -d- -f3)
build_msg DOCKER "Last commit : $VERSION_GITCOMMIT" build_msg DOCKER "Last commit : $VERSION_GITCOMMIT"
# define the docker image name # define the docker image name
@ -500,7 +500,6 @@ docker.build() {
docker $BUILD \ docker $BUILD \
--build-arg BASE_IMAGE="${DEPENDENCIES_IMAGE_NAME}" \ --build-arg BASE_IMAGE="${DEPENDENCIES_IMAGE_NAME}" \
--build-arg GIT_URL="${GIT_URL}" \ --build-arg GIT_URL="${GIT_URL}" \
--build-arg SEARXNG_DOCKER_TAG="${DOCKER_TAG}" \
--build-arg SEARXNG_GIT_VERSION="${VERSION_STRING}" \ --build-arg SEARXNG_GIT_VERSION="${VERSION_STRING}" \
--build-arg VERSION_GITCOMMIT="${VERSION_GITCOMMIT}" \ --build-arg VERSION_GITCOMMIT="${VERSION_GITCOMMIT}" \
--build-arg LABEL_DATE="$(date -u +"%Y-%m-%dT%H:%M:%SZ")" \ --build-arg LABEL_DATE="$(date -u +"%Y-%m-%dT%H:%M:%SZ")" \
@ -508,11 +507,11 @@ docker.build() {
--build-arg LABEL_VCS_URL="${GIT_URL}" \ --build-arg LABEL_VCS_URL="${GIT_URL}" \
--build-arg TIMESTAMP_SETTINGS="$(git log -1 --format="%cd" --date=unix -- searx/settings.yml)" \ --build-arg TIMESTAMP_SETTINGS="$(git log -1 --format="%cd" --date=unix -- searx/settings.yml)" \
--build-arg TIMESTAMP_UWSGI="$(git log -1 --format="%cd" --date=unix -- dockerfiles/uwsgi.ini)" \ --build-arg TIMESTAMP_UWSGI="$(git log -1 --format="%cd" --date=unix -- dockerfiles/uwsgi.ini)" \
-t "${SEARXNG_IMAGE_NAME}:latest" -t "${SEARXNG_IMAGE_NAME}:${DOCKER_TAG}" . -t "${SEARXNG_IMAGE_NAME}:latest" -t "${SEARXNG_IMAGE_NAME}:${VERSION_STRING}" .
if [ "$1" = "push" ]; then if [ "$1" = "push" ]; then
docker push "${SEARXNG_IMAGE_NAME}:latest" docker push "${SEARXNG_IMAGE_NAME}:latest"
docker push "${SEARXNG_IMAGE_NAME}:${DOCKER_TAG}" docker push "${SEARXNG_IMAGE_NAME}:${SEARXNG_GIT_VERSION}"
fi fi
) )
dump_return $? dump_return $?

@ -7,7 +7,7 @@ splinter==0.18.1
selenium==4.7.2 selenium==4.7.2
twine==4.0.2 twine==4.0.2
Pallets-Sphinx-Themes==2.0.3 Pallets-Sphinx-Themes==2.0.3
Sphinx==5.3.0 Sphinx==6.1.3
sphinx-issues==3.0.1 sphinx-issues==3.0.1
sphinx-jinja==2.0.2 sphinx-jinja==2.0.2
sphinx-tabs==3.4.1 sphinx-tabs==3.4.1

@ -12,7 +12,7 @@ Brotli==1.0.9
uvloop==0.17.0 uvloop==0.17.0
httpx-socks[asyncio]==0.7.2 httpx-socks[asyncio]==0.7.2
setproctitle==1.3.2 setproctitle==1.3.2
redis==4.4.2 redis==4.4.0
markdown-it-py==2.1.0 markdown-it-py==2.1.0
typing_extensions==4.4.0 typing_extensions==4.4.0
fasttext-predict==0.9.2.1 fasttext-predict==0.9.2.1

@ -69,19 +69,11 @@ class SearxEngineAPIException(SearxEngineResponseException):
class SearxEngineAccessDeniedException(SearxEngineResponseException): class SearxEngineAccessDeniedException(SearxEngineResponseException):
"""The website is blocking the access""" """The website is blocking the access"""
SUSPEND_TIME_SETTING = "search.suspended_times.SearxEngineAccessDenied" def __init__(self, suspended_time=24 * 3600, message='Access denied'):
def __init__(self, suspended_time=None, message='Access denied'):
suspended_time = suspended_time or self._get_default_suspended_time()
super().__init__(message + ', suspended_time=' + str(suspended_time)) super().__init__(message + ', suspended_time=' + str(suspended_time))
self.suspended_time = suspended_time self.suspended_time = suspended_time
self.message = message self.message = message
def _get_default_suspended_time(self):
from searx import get_setting
return get_setting(self.SUSPEND_TIME_SETTING)
class SearxEngineCaptchaException(SearxEngineAccessDeniedException): class SearxEngineCaptchaException(SearxEngineAccessDeniedException):
"""The website has returned a CAPTCHA """The website has returned a CAPTCHA
@ -89,9 +81,7 @@ class SearxEngineCaptchaException(SearxEngineAccessDeniedException):
By default, searx stops sending requests to this engine for 1 day. By default, searx stops sending requests to this engine for 1 day.
""" """
SUSPEND_TIME_SETTING = "search.suspended_times.SearxEngineCaptcha" def __init__(self, suspended_time=24 * 3600, message='CAPTCHA'):
def __init__(self, suspended_time=None, message='CAPTCHA'):
super().__init__(message=message, suspended_time=suspended_time) super().__init__(message=message, suspended_time=suspended_time)
@ -101,9 +91,7 @@ class SearxEngineTooManyRequestsException(SearxEngineAccessDeniedException):
By default, searx stops sending requests to this engine for 1 hour. By default, searx stops sending requests to this engine for 1 hour.
""" """
SUSPEND_TIME_SETTING = "search.suspended_times.SearxEngineTooManyRequests" def __init__(self, suspended_time=3600, message='Too many request'):
def __init__(self, suspended_time=None, message='Too many request'):
super().__init__(message=message, suspended_time=suspended_time) super().__init__(message=message, suspended_time=suspended_time)

@ -79,7 +79,7 @@ machen. Je dezentraler das Internet ist, desto mehr Freiheit haben wir!
[SearXNG Dokumentation]: {{get_setting('brand.docs_url')}} [SearXNG Dokumentation]: {{get_setting('brand.docs_url')}}
[searx]: https://github.com/searx/searx [searx]: https://github.com/searx/searx
[Metasuchmaschine]: https://de.wikipedia.org/wiki/Metasuchmaschine [Metasuchmaschine]: https://de.wikipedia.org/wiki/Metasuchmaschine
[Weblate]: https://translate.codeberg.org/projects/searxng/ [Weblate]: https://weblate.bubu1.eu/projects/searxng/
[Seeks-Projekt]: https://beniz.github.io/seeks/ [Seeks-Projekt]: https://beniz.github.io/seeks/
[OpenSearch]: https://github.com/dewitt/opensearch/blob/master/opensearch-1-1-draft-6.md [OpenSearch]: https://github.com/dewitt/opensearch/blob/master/opensearch-1-1-draft-6.md
[Firefox]: https://support.mozilla.org/en-US/kb/add-or-remove-search-engine-firefox [Firefox]: https://support.mozilla.org/en-US/kb/add-or-remove-search-engine-firefox

@ -71,7 +71,7 @@ internet is, the more freedom we have!
[SearXNG docs]: {{get_setting('brand.docs_url')}} [SearXNG docs]: {{get_setting('brand.docs_url')}}
[searx]: https://github.com/searx/searx [searx]: https://github.com/searx/searx
[metasearch engine]: https://en.wikipedia.org/wiki/Metasearch_engine [metasearch engine]: https://en.wikipedia.org/wiki/Metasearch_engine
[Weblate]: https://translate.codeberg.org/projects/searxng/ [Weblate]: https://weblate.bubu1.eu/projects/searxng/
[Seeks project]: https://beniz.github.io/seeks/ [Seeks project]: https://beniz.github.io/seeks/
[OpenSearch]: https://github.com/dewitt/opensearch/blob/master/opensearch-1-1-draft-6.md [OpenSearch]: https://github.com/dewitt/opensearch/blob/master/opensearch-1-1-draft-6.md
[Firefox]: https://support.mozilla.org/en-US/kb/add-or-remove-search-engine-firefox [Firefox]: https://support.mozilla.org/en-US/kb/add-or-remove-search-engine-firefox

@ -74,7 +74,7 @@ terdesentralisasinya internet, lebih banyak kebebasan yang kita punya!
[dokumentasi SearXNG]: {{get_setting('brand.docs_url')}} [dokumentasi SearXNG]: {{get_setting('brand.docs_url')}}
[searx]: https://github.com/searx/searx [searx]: https://github.com/searx/searx
[mesin pencari meta]: https://id.wikipedia.org/wiki/Mesin_pencari_web#Mesin_Pencari_dan_Mesin_Pencari-meta [mesin pencari meta]: https://id.wikipedia.org/wiki/Mesin_pencari_web#Mesin_Pencari_dan_Mesin_Pencari-meta
[Weblate]: https://translate.codeberg.org/projects/searxng/ [Weblate]: https://weblate.bubu1.eu/projects/searxng/
[proyek Seeks]: https://beniz.github.io/seeks/ [proyek Seeks]: https://beniz.github.io/seeks/
[OpenSearch]: https://github.com/dewitt/opensearch/blob/master/opensearch-1-1-draft-6.md [OpenSearch]: https://github.com/dewitt/opensearch/blob/master/opensearch-1-1-draft-6.md
[Firefox]: https://support.mozilla.org/id/kb/add-or-remove-search-engine-firefox [Firefox]: https://support.mozilla.org/id/kb/add-or-remove-search-engine-firefox

@ -9,7 +9,6 @@ from searx.exceptions import (
SearxEngineTooManyRequestsException, SearxEngineTooManyRequestsException,
SearxEngineAccessDeniedException, SearxEngineAccessDeniedException,
) )
from searx import get_setting
def is_cloudflare_challenge(resp): def is_cloudflare_challenge(resp):
@ -34,22 +33,15 @@ def raise_for_cloudflare_captcha(resp):
if is_cloudflare_challenge(resp): if is_cloudflare_challenge(resp):
# https://support.cloudflare.com/hc/en-us/articles/200170136-Understanding-Cloudflare-Challenge-Passage-Captcha- # https://support.cloudflare.com/hc/en-us/articles/200170136-Understanding-Cloudflare-Challenge-Passage-Captcha-
# suspend for 2 weeks # suspend for 2 weeks
raise SearxEngineCaptchaException( raise SearxEngineCaptchaException(message='Cloudflare CAPTCHA', suspended_time=3600 * 24 * 15)
message='Cloudflare CAPTCHA', suspended_time=get_setting('search.suspended_times.cf_SearxEngineCaptcha')
)
if is_cloudflare_firewall(resp): if is_cloudflare_firewall(resp):
raise SearxEngineAccessDeniedException( raise SearxEngineAccessDeniedException(message='Cloudflare Firewall', suspended_time=3600 * 24)
message='Cloudflare Firewall',
suspended_time=get_setting('search.suspended_times.cf_SearxEngineAccessDenied'),
)
def raise_for_recaptcha(resp): def raise_for_recaptcha(resp):
if resp.status_code == 503 and '"https://www.google.com/recaptcha/' in resp.text: if resp.status_code == 503 and '"https://www.google.com/recaptcha/' in resp.text:
raise SearxEngineCaptchaException( raise SearxEngineCaptchaException(message='ReCAPTCHA', suspended_time=3600 * 24 * 7)
message='ReCAPTCHA', suspended_time=get_setting('search.suspended_times.recaptcha_SearxEngineCaptcha')
)
def raise_for_captcha(resp): def raise_for_captcha(resp):

@ -45,20 +45,6 @@ search:
ban_time_on_fail: 5 ban_time_on_fail: 5
# max ban time in seconds after engine errors # max ban time in seconds after engine errors
max_ban_time_on_fail: 120 max_ban_time_on_fail: 120
suspend_times:
# Engine suspension time after error (in seconds; set to 0 to disable)
# For error "Access denied" and "HTTP error [402, 403]"
SearxEngineAccessDenied: 86400
# For error "CAPTCHA"
SearxEngineCaptcha: 86400
# For error "Too many request" and "HTTP error 429"
SearxEngineTooManyRequests: 3600
# Cloudflare CAPTCHA
cf_SearxEngineCaptcha: 1296000
cf_SearxEngineAccessDenied: 86400
# ReCAPTCHA
recaptcha_SearxEngineCaptcha: 604800
# remove format to deny access, use lower case. # remove format to deny access, use lower case.
# formats: [html, csv, json, rss] # formats: [html, csv, json, rss]
formats: formats:
@ -1981,26 +1967,6 @@ engines:
require_api_key: false require_api_key: false
results: HTML results: HTML
- name: goo
shortcut: goo
engine: xpath
paging: true
search_url: https://search.goo.ne.jp/web.jsp?MT={query}&FR={pageno}0
url_xpath: //div[@class="result"]/p[@class='title fsL1']/a/@href
title_xpath: //div[@class="result"]/p[@class='title fsL1']/a
content_xpath: //p[contains(@class,'url fsM')]/following-sibling::p
first_page_num: 0
categories: [general, web]
disabled: true
timeout: 4.0
about:
website: https://search.goo.ne.jp
wikidata_id: Q249044
use_official_api: false
require_api_key: false
results: HTML
language: ja
# Doku engine lets you access to any Doku wiki instance: # Doku engine lets you access to any Doku wiki instance:
# A public one or a privete/corporate one. # A public one or a privete/corporate one.
# - name: ubuntuwiki # - name: ubuntuwiki

@ -160,14 +160,6 @@ SCHEMA = {
'languages': SettingSublistValue(LANGUAGE_CODES, LANGUAGE_CODES), 'languages': SettingSublistValue(LANGUAGE_CODES, LANGUAGE_CODES),
'ban_time_on_fail': SettingsValue(numbers.Real, 5), 'ban_time_on_fail': SettingsValue(numbers.Real, 5),
'max_ban_time_on_fail': SettingsValue(numbers.Real, 120), 'max_ban_time_on_fail': SettingsValue(numbers.Real, 120),
'suspended_times': {
'SearxEngineAccessDenied': SettingsValue(numbers.Real, 86400),
'SearxEngineCaptcha': SettingsValue(numbers.Real, 86400),
'SearxEngineTooManyRequests': SettingsValue(numbers.Real, 3600),
'cf_SearxEngineCaptcha': SettingsValue(numbers.Real, 1296000),
'cf_SearxEngineAccessDenied': SettingsValue(numbers.Real, 86400),
'recaptcha_SearxEngineCaptcha': SettingsValue(numbers.Real, 604800),
},
'formats': SettingsValue(list, OUTPUT_FORMATS), 'formats': SettingsValue(list, OUTPUT_FORMATS),
}, },
'server': { 'server': {

@ -423,8 +423,11 @@ svg.leaflet-image-layer.leaflet-interactive path {
.leaflet-control-attribution a:focus { .leaflet-control-attribution a:focus {
text-decoration: underline; text-decoration: underline;
} }
.leaflet-control-attribution svg { .leaflet-attribution-flag {
display: inline !important; display: inline !important;
vertical-align: baseline !important;
width: 1em;
height: 0.6669em;
} }
.leaflet-left .leaflet-control-scale { .leaflet-left .leaflet-control-scale {
margin-left: 5px; margin-left: 5px;
@ -438,12 +441,10 @@ svg.leaflet-image-layer.leaflet-interactive path {
line-height: 1.1; line-height: 1.1;
padding: 2px 5px 1px; padding: 2px 5px 1px;
white-space: nowrap; white-space: nowrap;
overflow: hidden;
-moz-box-sizing: border-box; -moz-box-sizing: border-box;
box-sizing: border-box; box-sizing: border-box;
background: rgba(255, 255, 255, 0.8);
background: #fff; text-shadow: 1px 1px #fff;
background: rgba(255, 255, 255, 0.5);
} }
.leaflet-control-scale-line:not(:first-child) { .leaflet-control-scale-line:not(:first-child) {
border-top: 2px solid #777; border-top: 2px solid #777;
@ -537,8 +538,6 @@ svg.leaflet-image-layer.leaflet-interactive path {
} }
.leaflet-popup-scrolled { .leaflet-popup-scrolled {
overflow: auto; overflow: auto;
border-bottom: 1px solid #ddd;
border-top: 1px solid #ddd;
} }
.leaflet-oldie .leaflet-popup-content-wrapper { .leaflet-oldie .leaflet-popup-content-wrapper {
@ -652,6 +651,6 @@ svg.leaflet-image-layer.leaflet-interactive path {
/* Prevent printers from removing background-images of controls. */ /* Prevent printers from removing background-images of controls. */
.leaflet-control { .leaflet-control {
-webkit-print-color-adjust: exact; -webkit-print-color-adjust: exact;
color-adjust: exact; print-color-adjust: exact;
} }
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1 +1 @@
{"version":3,"file":"searxng.head.min.js","sources":["../src/js/head/00_init.js"],"sourcesContent":["/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d) {\n 'use strict';\n\n // add data- properties\n var script = d.currentScript || (function () {\n var scripts = d.getElementsByTagName('script');\n return scripts[scripts.length - 1];\n })();\n\n w.searxng = {\n settings: JSON.parse(atob(script.getAttribute('client_settings')))\n };\n\n // update the css\n var hmtlElement = d.getElementsByTagName(\"html\")[0];\n hmtlElement.classList.remove('no-js');\n hmtlElement.classList.add('js');\n\n})(window, document);\n"],"names":["w","d","script","currentScript","scripts","getElementsByTagName","length","searxng","settings","JSON","parse","atob","getAttribute","hmtlElement","classList","remove","add","window","document"],"mappings":"CACA,SAAWA,EAAGC,gBAIZ,IAAIC,EAASD,EAAEE,eAAkB,WAC/B,IAAIC,EAAUH,EAAEI,qBAAqB,UACrC,OAAOD,EAAQA,EAAQE,OAAS,GAFD,GAKjCN,EAAEO,QAAU,CACVC,SAAUC,KAAKC,MAAMC,KAAKT,EAAOU,aAAa,sBAIhD,IAAIC,EAAcZ,EAAEI,qBAAqB,QAAQ,GACjDQ,EAAYC,UAAUC,OAAO,SAC7BF,EAAYC,UAAUE,IAAI,OAhB5B,CAkBGC,OAAQC"} {"version":3,"file":"searxng.head.min.js","sources":["../src/js/head/00_init.js"],"sourcesContent":["/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d) {\n 'use strict';\n\n // add data- properties\n var script = d.currentScript || (function () {\n var scripts = d.getElementsByTagName('script');\n return scripts[scripts.length - 1];\n })();\n\n w.searxng = {\n settings: JSON.parse(atob(script.getAttribute('client_settings')))\n };\n\n // update the css\n var hmtlElement = d.getElementsByTagName(\"html\")[0];\n hmtlElement.classList.remove('no-js');\n hmtlElement.classList.add('js');\n\n})(window, document);\n"],"names":["w","d","script","currentScript","scripts","getElementsByTagName","length","searxng","settings","JSON","parse","atob","getAttribute","hmtlElement","classList","remove","add","window","document"],"mappings":"CACA,SAAWA,EAAGC,GACZ,aAGA,IAAIC,EAASD,EAAEE,eAAkB,WAC/B,IAAIC,EAAUH,EAAEI,qBAAqB,QAAQ,EAC7C,OAAOD,EAAQA,EAAQE,OAAS,EACjC,EAAE,EAEHN,EAAEO,QAAU,CACVC,SAAUC,KAAKC,MAAMC,KAAKT,EAAOU,aAAa,iBAAiB,CAAC,CAAC,CACnE,EAGA,IAAIC,EAAcZ,EAAEI,qBAAqB,MAAM,EAAE,GACjDQ,EAAYC,UAAUC,OAAO,OAAO,EACpCF,EAAYC,UAAUE,IAAI,IAAI,CAE/B,GAAEC,OAAQC,QAAQ"}

File diff suppressed because one or more lines are too long

@ -362,7 +362,7 @@ article[data-vim-selected].category-social {
.category-files, .category-files,
.category-social { .category-social {
border: 1px solid var(--color-result-border); border: 1px solid var(--color-result-border);
margin: 0 @results-tablet-offset 1rem @results-tablet-offset !important; margin: 1rem @results-tablet-offset 0 @results-tablet-offset !important;
.rounded-corners; .rounded-corners;
} }
@ -734,26 +734,6 @@ article[data-vim-selected].category-social {
} }
} }
.numbered_pagination {
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
overflow: hidden;
}
.page_number {
background: transparent !important;
color: var(--color-result-link-font) !important;
text-decoration: underline;
}
.page_number_current {
background: transparent;
color: var(--color-result-link-visited-font);
border: none;
}
#apis { #apis {
margin-top: 8px; margin-top: 8px;
clear: both; clear: both;
@ -1029,10 +1009,6 @@ article[data-vim-selected].category-social {
background-color: var(--color-sidebar-background); background-color: var(--color-sidebar-background);
} }
.numbered_pagination {
display: none;
}
.result-paper { .result-paper {
.attributes { .attributes {
display: block; display: block;

@ -187,35 +187,6 @@
<button role="link" type="submit">{{ _('Next page') }} {{ icon_small('chevron-right') }}</button> <button role="link" type="submit">{{ _('Next page') }} {{ icon_small('chevron-right') }}</button>
</div> </div>
</form> </form>
{% set pstart = 1 %}
{% set pend = 11 %}
{% if pageno > 5 %}
{% set pstart = pageno - 4 %}
{% set pend = pageno + 6 %}
{% endif %}
<div class="numbered_pagination">
{% for x in range(pstart, pend) %}
<form method="{{ method or 'POST' }}" action="{{ url_for('search') }}" class="page_number">
<input type="hidden" name="q" value="{{ q|e }}" >
{% for category in selected_categories %}
<input type="hidden" name="category_{{ category }}" value="1" >
{% endfor %}
<input type="hidden" name="pageno" value="{{ x }}" >
<input type="hidden" name="language" value="{{ current_language }}" >
<input type="hidden" name="time_range" value="{{ time_range }}" >
<input type="hidden" name="safesearch" value="{{ safesearch }}" >
<input type="hidden" name="theme" value="{{ theme }}" >
{% if timeout_limit %}<input type="hidden" name="timeout_limit" value="{{ timeout_limit|e }}" >{% endif %}
{{- engine_data_form(engine_data) -}}
{% if pageno == x %}
<input role="link" class="page_number_current" type="button" value="{{ x }}">
{% else %}
<input role="link" class="page_number" type="submit" value="{{ x }}">
{% endif %}
</form>
{% endfor %}
</div>
</nav> </nav>
{% endif %} {% endif %}
</div> </div>

@ -6,7 +6,7 @@
# ButterflyOfFire ButterflyOfFire, 2018 # ButterflyOfFire ButterflyOfFire, 2018
# ButterflyOfFire, 2018 # ButterflyOfFire, 2018
# d506c013dc1b502e7a53f91ebcbf8f29_985b4b3, 2017-2018 # d506c013dc1b502e7a53f91ebcbf8f29_985b4b3, 2017-2018
# Markus Heiser <markus.heiser@darmarit.de>, 2022, 2023. # Markus Heiser <markus.heiser@darmarit.de>, 2022.
# ken kailer <kenkailer@yahoo.com>, 2022. # ken kailer <kenkailer@yahoo.com>, 2022.
# George Kashkosh <kash.george@gmail.com>, 2022. # George Kashkosh <kash.george@gmail.com>, 2022.
# Droid <droidpy587@gmail.com>, 2022. # Droid <droidpy587@gmail.com>, 2022.
@ -15,8 +15,8 @@ msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-12-12 07:18+0000\n" "POT-Creation-Date: 2022-12-12 07:18+0000\n"
"PO-Revision-Date: 2023-01-13 07:14+0000\n" "PO-Revision-Date: 2022-12-30 07:14+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n" "Last-Translator: Droid <droidpy587@gmail.com>\n"
"Language-Team: Arabic <https://weblate.bubu1.eu/projects/searxng/searxng/ar/>" "Language-Team: Arabic <https://weblate.bubu1.eu/projects/searxng/searxng/ar/>"
"\n" "\n"
"Language: ar\n" "Language: ar\n"
@ -320,12 +320,13 @@ msgid "Night"
msgstr "ليلا" msgstr "ليلا"
#: searx/plugins/autodetect_search_language.py:79 #: searx/plugins/autodetect_search_language.py:79
#, fuzzy
msgid "Autodetect search language" msgid "Autodetect search language"
msgstr "كشف تلقائي عن لغة البحث" msgstr "البحث التلقائي للغة"
#: searx/plugins/autodetect_search_language.py:80 #: searx/plugins/autodetect_search_language.py:80
msgid "Automatically detect the query search language and switch to it." msgid "Automatically detect the query search language and switch to it."
msgstr "كشف تلقائي عن لغة البحث والتبديل إليها." msgstr ""
#: searx/plugins/hash_plugin.py:24 #: searx/plugins/hash_plugin.py:24
msgid "Converts strings to different hash digests." msgid "Converts strings to different hash digests."
@ -1141,7 +1142,7 @@ msgstr "تاريخ النشر"
#: searx/templates/simple/result_templates/paper.html:9 #: searx/templates/simple/result_templates/paper.html:9
msgid "Journal" msgid "Journal"
msgstr "السجل اليومي" msgstr ""
#: searx/templates/simple/result_templates/paper.html:22 #: searx/templates/simple/result_templates/paper.html:22
msgid "Editor" msgid "Editor"
@ -1161,11 +1162,11 @@ msgstr "السمات"
#: searx/templates/simple/result_templates/paper.html:26 #: searx/templates/simple/result_templates/paper.html:26
msgid "DOI" msgid "DOI"
msgstr "DOI" msgstr ""
#: searx/templates/simple/result_templates/paper.html:27 #: searx/templates/simple/result_templates/paper.html:27
msgid "ISSN" msgid "ISSN"
msgstr "ISSN" msgstr ""
#: searx/templates/simple/result_templates/paper.html:28 #: searx/templates/simple/result_templates/paper.html:28
msgid "ISBN" msgid "ISBN"

@ -8,22 +8,20 @@
# beriain, 2020-2021 # beriain, 2020-2021
# Txopi <txopi@ikusimakusi.eus>, 2016 # Txopi <txopi@ikusimakusi.eus>, 2016
# beriain <soila@disroot.org>, 2022. # beriain <soila@disroot.org>, 2022.
# Markus Heiser <markus.heiser@darmarit.de>, 2023.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-12-12 07:18+0000\n" "POT-Creation-Date: 2022-12-12 07:18+0000\n"
"PO-Revision-Date: 2023-01-13 07:14+0000\n" "PO-Revision-Date: 2022-09-11 22:50+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n" "Last-Translator: beriain <soila@disroot.org>\n"
"Language-Team: Basque <https://weblate.bubu1.eu/projects/searxng/searxng/eu/>"
"\n"
"Language: eu\n" "Language: eu\n"
"Language-Team: Basque "
"<https://weblate.bubu1.eu/projects/searxng/searxng/eu/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.14.1\n"
"Generated-By: Babel 2.11.0\n" "Generated-By: Babel 2.11.0\n"
#. CONSTANT_NAMES['DEFAULT_GROUP_NAME'] #. CONSTANT_NAMES['DEFAULT_GROUP_NAME']
@ -129,7 +127,7 @@ msgstr "software wikiak"
#. CATEGORY_GROUPS['WEB'] #. CATEGORY_GROUPS['WEB']
#: searx/searxng.msg #: searx/searxng.msg
msgid "web" msgid "web"
msgstr "web" msgstr ""
#. CATEGORY_GROUPS['SCIENTIFIC PUBLICATIONS'] #. CATEGORY_GROUPS['SCIENTIFIC PUBLICATIONS']
#: searx/searxng.msg #: searx/searxng.msg
@ -1478,3 +1476,4 @@ msgstr "ezkutatu bideoa"
#~ "href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\"" #~ "href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
#~ " rel=\"external\">ikasi gehiago eskaera metodoen" #~ " rel=\"external\">ikasi gehiago eskaera metodoen"
#~ " inguruan</a>" #~ " inguruan</a>"

@ -15,7 +15,7 @@ msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-12-12 07:18+0000\n" "POT-Creation-Date: 2022-12-12 07:18+0000\n"
"PO-Revision-Date: 2023-01-13 07:14+0000\n" "PO-Revision-Date: 2023-01-06 07:14+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n" "Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
"Language-Team: Persian <https://weblate.bubu1.eu/projects/searxng/searxng/fa/" "Language-Team: Persian <https://weblate.bubu1.eu/projects/searxng/searxng/fa/"
">\n" ">\n"
@ -95,7 +95,7 @@ msgstr "علم"
#. CATEGORY_GROUPS['APPS'] #. CATEGORY_GROUPS['APPS']
#: searx/searxng.msg #: searx/searxng.msg
msgid "apps" msgid "apps"
msgstr "برنامه ها" msgstr "برنامک‌ها"
#. CATEGORY_GROUPS['DICTIONARIES'] #. CATEGORY_GROUPS['DICTIONARIES']
#: searx/searxng.msg #: searx/searxng.msg
@ -170,7 +170,7 @@ msgstr "خطای شبکه"
#: searx/webapp.py:169 #: searx/webapp.py:169
msgid "SSL error: certificate validation has failed" msgid "SSL error: certificate validation has failed"
msgstr "ارور SSL:اعتبار سنجی گواهی امنیتی SSL ناموفق بود" msgstr "ارور SSL:اعتبار سنجی گواهی ناموفق بود"
#: searx/webapp.py:171 #: searx/webapp.py:171
msgid "unexpected crash" msgid "unexpected crash"
@ -198,7 +198,7 @@ msgstr "درخواست‌های زیاد"
#: searx/webapp.py:188 #: searx/webapp.py:188
msgid "access denied" msgid "access denied"
msgstr "دسترسی مجاز نیست" msgstr "دسترسی ممنوع است"
#: searx/webapp.py:189 #: searx/webapp.py:189
msgid "server API error" msgid "server API error"
@ -219,7 +219,7 @@ msgstr "خطا در بارگزاری صفحه جدید"
#: searx/webapp.py:522 searx/webapp.py:954 #: searx/webapp.py:522 searx/webapp.py:954
msgid "Invalid settings, please edit your preferences" msgid "Invalid settings, please edit your preferences"
msgstr "تنظیمات نادرست است، لطفا تنظیمات جستجو را تغییر دهید" msgstr "تنظیمات نادرست است، لطفا پیش‌فرض‌های جستجو را تغییر دهید"
#: searx/webapp.py:538 #: searx/webapp.py:538
msgid "Invalid settings" msgid "Invalid settings"

@ -4,23 +4,22 @@
# #
# Translators: # Translators:
# Jiri Grönroos <jiri.gronroos@iki.fi>, 2017 # Jiri Grönroos <jiri.gronroos@iki.fi>, 2017
# Markus Heiser <markus.heiser@darmarit.de>, 2022, 2023. # Markus Heiser <markus.heiser@darmarit.de>, 2022.
# Mico Hautaluoma <m@mha.fi>, 2022. # Mico Hautaluoma <m@mha.fi>, 2022.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-12-12 07:18+0000\n" "POT-Creation-Date: 2022-12-12 07:18+0000\n"
"PO-Revision-Date: 2023-01-13 07:14+0000\n" "PO-Revision-Date: 2022-10-11 13:31+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n" "Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
"Language-Team: Finnish <https://weblate.bubu1.eu/projects/searxng/searxng/fi/"
">\n"
"Language: fi\n" "Language: fi\n"
"Language-Team: Finnish "
"<https://weblate.bubu1.eu/projects/searxng/searxng/fi/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.14.1\n"
"Generated-By: Babel 2.11.0\n" "Generated-By: Babel 2.11.0\n"
#. CONSTANT_NAMES['DEFAULT_GROUP_NAME'] #. CONSTANT_NAMES['DEFAULT_GROUP_NAME']
@ -166,7 +165,7 @@ msgstr "verkkovirhe"
#: searx/webapp.py:169 #: searx/webapp.py:169
msgid "SSL error: certificate validation has failed" msgid "SSL error: certificate validation has failed"
msgstr "SSL-virhe: sertifikaatin vahvistus epäonnistui" msgstr ""
#: searx/webapp.py:171 #: searx/webapp.py:171
msgid "unexpected crash" msgid "unexpected crash"
@ -274,8 +273,6 @@ msgid ""
"{numCitations} citations from the year {firstCitationVelocityYear} to " "{numCitations} citations from the year {firstCitationVelocityYear} to "
"{lastCitationVelocityYear}" "{lastCitationVelocityYear}"
msgstr "" msgstr ""
"{numCitations} Sitaatit vuodesta {firstCitationVelocityYear} vuoteen "
"{lastCitationVelocityYear}"
#: searx/engines/tineye.py:40 #: searx/engines/tineye.py:40
msgid "" msgid ""
@ -317,7 +314,7 @@ msgstr "Yö"
#: searx/plugins/autodetect_search_language.py:79 #: searx/plugins/autodetect_search_language.py:79
msgid "Autodetect search language" msgid "Autodetect search language"
msgstr "Tunnista hakukieli automaattisesti" msgstr ""
#: searx/plugins/autodetect_search_language.py:80 #: searx/plugins/autodetect_search_language.py:80
msgid "Automatically detect the query search language and switch to it." msgid "Automatically detect the query search language and switch to it."
@ -458,7 +455,7 @@ msgstr "Taustavoimana"
#: searx/templates/simple/base.html:64 #: searx/templates/simple/base.html:64
msgid "a privacy-respecting, open metasearch engine" msgid "a privacy-respecting, open metasearch engine"
msgstr "yksityisyyttä kunnioittava, avoin metahakukone" msgstr ""
#: searx/templates/simple/base.html:65 #: searx/templates/simple/base.html:65
msgid "Source code" msgid "Source code"
@ -1131,11 +1128,11 @@ msgstr "piilota kartta"
#: searx/templates/simple/result_templates/paper.html:5 #: searx/templates/simple/result_templates/paper.html:5
msgid "Published date" msgid "Published date"
msgstr "Julkaisupäivä" msgstr ""
#: searx/templates/simple/result_templates/paper.html:9 #: searx/templates/simple/result_templates/paper.html:9
msgid "Journal" msgid "Journal"
msgstr "Journaali" msgstr ""
#: searx/templates/simple/result_templates/paper.html:22 #: searx/templates/simple/result_templates/paper.html:22
msgid "Editor" msgid "Editor"
@ -1143,7 +1140,7 @@ msgstr ""
#: searx/templates/simple/result_templates/paper.html:23 #: searx/templates/simple/result_templates/paper.html:23
msgid "Publisher" msgid "Publisher"
msgstr "Julkaisija" msgstr ""
#: searx/templates/simple/result_templates/paper.html:24 #: searx/templates/simple/result_templates/paper.html:24
msgid "Type" msgid "Type"
@ -1151,7 +1148,7 @@ msgstr ""
#: searx/templates/simple/result_templates/paper.html:25 #: searx/templates/simple/result_templates/paper.html:25
msgid "Tags" msgid "Tags"
msgstr "Tägit" msgstr ""
#: searx/templates/simple/result_templates/paper.html:26 #: searx/templates/simple/result_templates/paper.html:26
msgid "DOI" msgid "DOI"
@ -1159,19 +1156,19 @@ msgstr ""
#: searx/templates/simple/result_templates/paper.html:27 #: searx/templates/simple/result_templates/paper.html:27
msgid "ISSN" msgid "ISSN"
msgstr "ISSN" msgstr ""
#: searx/templates/simple/result_templates/paper.html:28 #: searx/templates/simple/result_templates/paper.html:28
msgid "ISBN" msgid "ISBN"
msgstr "ISBN" msgstr ""
#: searx/templates/simple/result_templates/paper.html:33 #: searx/templates/simple/result_templates/paper.html:33
msgid "PDF" msgid "PDF"
msgstr "PDF" msgstr ""
#: searx/templates/simple/result_templates/paper.html:34 #: searx/templates/simple/result_templates/paper.html:34
msgid "HTML" msgid "HTML"
msgstr "HTML" msgstr ""
#: searx/templates/simple/result_templates/torrent.html:6 #: searx/templates/simple/result_templates/torrent.html:6
msgid "magnet link" msgid "magnet link"
@ -1495,3 +1492,4 @@ msgstr "piilota video"
#~ " <a " #~ " <a "
#~ "href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\"" #~ "href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
#~ " rel=\"external\">Lisätietoja eri välitystavoista.</a>" #~ " rel=\"external\">Lisätietoja eri välitystavoista.</a>"

@ -9,24 +9,23 @@
# pointhi, 2014 # pointhi, 2014
# rike, 2014 # rike, 2014
# stf <stefan.marsiske@gmail.com>, 2014 # stf <stefan.marsiske@gmail.com>, 2014
# Markus Heiser <markus.heiser@darmarit.de>, 2022, 2023. # Markus Heiser <markus.heiser@darmarit.de>, 2022.
# Shopimisrel <shopisrael12@gmail.com>, 2022. # Shopimisrel <shopisrael12@gmail.com>, 2022.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-12-12 07:18+0000\n" "POT-Creation-Date: 2022-12-12 07:18+0000\n"
"PO-Revision-Date: 2023-01-20 07:15+0000\n" "PO-Revision-Date: 2022-09-21 15:58+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n" "Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
"Language-Team: Hebrew <https://weblate.bubu1.eu/projects/searxng/searxng/he/>"
"\n"
"Language: he\n" "Language: he\n"
"Language-Team: Hebrew "
"<https://weblate.bubu1.eu/projects/searxng/searxng/he/>\n"
"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 "
"&& n % 10 == 0) ? 2 : 3));\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && "
"n % 10 == 0) ? 2 : 3));\n"
"X-Generator: Weblate 4.14.1\n"
"Generated-By: Babel 2.11.0\n" "Generated-By: Babel 2.11.0\n"
#. CONSTANT_NAMES['DEFAULT_GROUP_NAME'] #. CONSTANT_NAMES['DEFAULT_GROUP_NAME']
@ -137,7 +136,7 @@ msgstr "רשת"
#. CATEGORY_GROUPS['SCIENTIFIC PUBLICATIONS'] #. CATEGORY_GROUPS['SCIENTIFIC PUBLICATIONS']
#: searx/searxng.msg #: searx/searxng.msg
msgid "scientific publications" msgid "scientific publications"
msgstr "מחקרים מדעיים" msgstr ""
#. STYLE_NAMES['AUTO'] #. STYLE_NAMES['AUTO']
#: searx/searxng.msg #: searx/searxng.msg
@ -172,7 +171,7 @@ msgstr "שגיאת רשת תקשורת"
#: searx/webapp.py:169 #: searx/webapp.py:169
msgid "SSL error: certificate validation has failed" msgid "SSL error: certificate validation has failed"
msgstr "שגיאת SSL: אימות התעודה נכשל" msgstr ""
#: searx/webapp.py:171 #: searx/webapp.py:171
msgid "unexpected crash" msgid "unexpected crash"
@ -305,27 +304,27 @@ msgstr "אי אפשר להוריד את תמונה זו."
#: searx/engines/wttr.py:101 #: searx/engines/wttr.py:101
msgid "Morning" msgid "Morning"
msgstr "בוקר" msgstr ""
#: searx/engines/wttr.py:101 #: searx/engines/wttr.py:101
msgid "Noon" msgid "Noon"
msgstr "צהריים" msgstr ""
#: searx/engines/wttr.py:101 #: searx/engines/wttr.py:101
msgid "Evening" msgid "Evening"
msgstr "ערב" msgstr ""
#: searx/engines/wttr.py:101 #: searx/engines/wttr.py:101
msgid "Night" msgid "Night"
msgstr "לילה" msgstr ""
#: searx/plugins/autodetect_search_language.py:79 #: searx/plugins/autodetect_search_language.py:79
msgid "Autodetect search language" msgid "Autodetect search language"
msgstr "זיהוי שפת חיפוש אוטומטי" msgstr ""
#: searx/plugins/autodetect_search_language.py:80 #: searx/plugins/autodetect_search_language.py:80
msgid "Automatically detect the query search language and switch to it." msgid "Automatically detect the query search language and switch to it."
msgstr "זהה אוטומטית את שפת החיפוש והחלף אליה בהתאם." msgstr ""
#: searx/plugins/hash_plugin.py:24 #: searx/plugins/hash_plugin.py:24
msgid "Converts strings to different hash digests." msgid "Converts strings to different hash digests."
@ -369,7 +368,7 @@ msgstr ""
#: searx/plugins/self_info.py:20 #: searx/plugins/self_info.py:20
msgid "Self Information" msgid "Self Information"
msgstr "מידע עצמי" msgstr ""
#: searx/plugins/self_info.py:21 #: searx/plugins/self_info.py:21
msgid "" msgid ""
@ -1121,7 +1120,7 @@ msgstr "הסתר מפה"
#: searx/templates/simple/result_templates/paper.html:5 #: searx/templates/simple/result_templates/paper.html:5
msgid "Published date" msgid "Published date"
msgstr "תאריך פרסום" msgstr ""
#: searx/templates/simple/result_templates/paper.html:9 #: searx/templates/simple/result_templates/paper.html:9
msgid "Journal" msgid "Journal"
@ -1129,7 +1128,7 @@ msgstr ""
#: searx/templates/simple/result_templates/paper.html:22 #: searx/templates/simple/result_templates/paper.html:22
msgid "Editor" msgid "Editor"
msgstr "עורך" msgstr ""
#: searx/templates/simple/result_templates/paper.html:23 #: searx/templates/simple/result_templates/paper.html:23
msgid "Publisher" msgid "Publisher"
@ -1137,11 +1136,11 @@ msgstr ""
#: searx/templates/simple/result_templates/paper.html:24 #: searx/templates/simple/result_templates/paper.html:24
msgid "Type" msgid "Type"
msgstr "סוג" msgstr ""
#: searx/templates/simple/result_templates/paper.html:25 #: searx/templates/simple/result_templates/paper.html:25
msgid "Tags" msgid "Tags"
msgstr "תגים" msgstr ""
#: searx/templates/simple/result_templates/paper.html:26 #: searx/templates/simple/result_templates/paper.html:26
msgid "DOI" msgid "DOI"
@ -1484,3 +1483,4 @@ msgstr "הסתר וידאו"
#~ "href=\"https://he.wikipedia.org/wiki/Hypertext_Transfer_Protocol#.D7.A9.D7.99.D7.98.D7.95.D7.AA_.D7.91.D7.A7.D7.A9.D7.94\"" #~ "href=\"https://he.wikipedia.org/wiki/Hypertext_Transfer_Protocol#.D7.A9.D7.99.D7.98.D7.95.D7.AA_.D7.91.D7.A7.D7.A9.D7.94\""
#~ " rel=\"external\">למידע נוסף אודות שיטות " #~ " rel=\"external\">למידע נוסף אודות שיטות "
#~ "בקשה (request methods)</a>" #~ "בקשה (request methods)</a>"

@ -12,22 +12,20 @@
# SecularSteve <fairfull.playing@gmail.com>, 2022. # SecularSteve <fairfull.playing@gmail.com>, 2022.
# Sweder doc <swederdvl@gmail.com>, 2022. # Sweder doc <swederdvl@gmail.com>, 2022.
# Peter Martin <weblate@pe7er.com>, 2022. # Peter Martin <weblate@pe7er.com>, 2022.
# Max Westen <max@maxwesten.nl>, 2023.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-12-12 07:18+0000\n" "POT-Creation-Date: 2022-12-12 07:18+0000\n"
"PO-Revision-Date: 2023-01-20 07:15+0000\n" "PO-Revision-Date: 2022-11-19 16:21+0000\n"
"Last-Translator: Max Westen <max@maxwesten.nl>\n" "Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
"Language-Team: Dutch <https://weblate.bubu1.eu/projects/searxng/searxng/nl/>"
"\n"
"Language: nl\n" "Language: nl\n"
"Language-Team: Dutch "
"<https://weblate.bubu1.eu/projects/searxng/searxng/nl/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.14.1\n"
"Generated-By: Babel 2.11.0\n" "Generated-By: Babel 2.11.0\n"
#. CONSTANT_NAMES['DEFAULT_GROUP_NAME'] #. CONSTANT_NAMES['DEFAULT_GROUP_NAME']
@ -73,7 +71,7 @@ msgstr "videos"
#. CATEGORY_NAMES['IT'] #. CATEGORY_NAMES['IT']
#: searx/searxng.msg #: searx/searxng.msg
msgid "it" msgid "it"
msgstr "IT" msgstr "het"
#. CATEGORY_NAMES['NEWS'] #. CATEGORY_NAMES['NEWS']
#: searx/searxng.msg #: searx/searxng.msg
@ -386,7 +384,7 @@ msgstr ""
#: searx/plugins/tor_check.py:25 #: searx/plugins/tor_check.py:25
msgid "Tor check plugin" msgid "Tor check plugin"
msgstr "Tor controle plug-in" msgstr "Tor proef plug-in"
#: searx/plugins/tor_check.py:28 #: searx/plugins/tor_check.py:28
msgid "" msgid ""
@ -1512,3 +1510,4 @@ msgstr "verberg video"
#~ "href=\"http://nl.wikipedia.org/wiki/Hypertext_Transfer_Protocol" #~ "href=\"http://nl.wikipedia.org/wiki/Hypertext_Transfer_Protocol"
#~ "#HTTP-requests\" rel=\"external\">lees meer over" #~ "#HTTP-requests\" rel=\"external\">lees meer over"
#~ " opvraagmethodes</a>" #~ " opvraagmethodes</a>"

@ -5,7 +5,7 @@
# Translators: # Translators:
# Dickprince, 2017 # Dickprince, 2017
# C. E., 2018 # C. E., 2018
# Markus Heiser <markus.heiser@darmarit.de>, 2022, 2023. # Markus Heiser <markus.heiser@darmarit.de>, 2022.
# Miguel Silva <miguelcabeca.dev@gmail.com>, 2022. # Miguel Silva <miguelcabeca.dev@gmail.com>, 2022.
# Ricardo Simões <xmcorporation@gmail.com>, 2022. # Ricardo Simões <xmcorporation@gmail.com>, 2022.
# zaioti <zaioti@tuta.io>, 2022. # zaioti <zaioti@tuta.io>, 2022.
@ -15,7 +15,7 @@ msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-12-12 07:18+0000\n" "POT-Creation-Date: 2022-12-12 07:18+0000\n"
"PO-Revision-Date: 2023-01-13 07:14+0000\n" "PO-Revision-Date: 2022-12-30 07:14+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n" "Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
"Language-Team: Portuguese <https://weblate.bubu1.eu/projects/searxng/searxng/" "Language-Team: Portuguese <https://weblate.bubu1.eu/projects/searxng/searxng/"
"pt/>\n" "pt/>\n"
@ -40,7 +40,7 @@ msgstr "outro"
#. CATEGORY_NAMES['FILES'] #. CATEGORY_NAMES['FILES']
#: searx/searxng.msg #: searx/searxng.msg
msgid "files" msgid "files"
msgstr "arquivos" msgstr "ficheiros"
#. CATEGORY_NAMES['GENERAL'] #. CATEGORY_NAMES['GENERAL']
#: searx/searxng.msg #: searx/searxng.msg
@ -125,7 +125,7 @@ msgstr "repositórios"
#. CATEGORY_GROUPS['SOFTWARE_WIKIS'] #. CATEGORY_GROUPS['SOFTWARE_WIKIS']
#: searx/searxng.msg #: searx/searxng.msg
msgid "software wikis" msgid "software wikis"
msgstr "wikis do software" msgstr "wikis de software"
#. CATEGORY_GROUPS['WEB'] #. CATEGORY_GROUPS['WEB']
#: searx/searxng.msg #: searx/searxng.msg
@ -326,7 +326,6 @@ msgstr "Deteção automatica da li"
#: searx/plugins/autodetect_search_language.py:80 #: searx/plugins/autodetect_search_language.py:80
msgid "Automatically detect the query search language and switch to it." msgid "Automatically detect the query search language and switch to it."
msgstr "" msgstr ""
"Detecte automaticamente o idioma de pesquisa consultado e mude para ele."
#: searx/plugins/hash_plugin.py:24 #: searx/plugins/hash_plugin.py:24
msgid "Converts strings to different hash digests." msgid "Converts strings to different hash digests."

@ -17,22 +17,20 @@
# calb sepherus <calb.sepherus@protonmail.com>, 2022. # calb sepherus <calb.sepherus@protonmail.com>, 2022.
# Yan Lyra <yanlyra3@gmail.com>, 2022. # Yan Lyra <yanlyra3@gmail.com>, 2022.
# zaioti <zaioti@tuta.io>, 2022. # zaioti <zaioti@tuta.io>, 2022.
# Spectro <spectro@keemail.me>, 2023.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-12-12 07:18+0000\n" "POT-Creation-Date: 2022-12-12 07:18+0000\n"
"PO-Revision-Date: 2023-01-20 07:15+0000\n" "PO-Revision-Date: 2022-11-28 13:11+0000\n"
"Last-Translator: Spectro <spectro@keemail.me>\n" "Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
"Language-Team: Portuguese (Brazil) <https://weblate.bubu1.eu/projects/"
"searxng/searxng/pt_BR/>\n"
"Language: pt_BR\n" "Language: pt_BR\n"
"Language-Team: Portuguese (Brazil) "
"<https://weblate.bubu1.eu/projects/searxng/searxng/pt_BR/>\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.14.1\n"
"Generated-By: Babel 2.11.0\n" "Generated-By: Babel 2.11.0\n"
#. CONSTANT_NAMES['DEFAULT_GROUP_NAME'] #. CONSTANT_NAMES['DEFAULT_GROUP_NAME']
@ -330,12 +328,11 @@ msgstr "Noite"
#: searx/plugins/autodetect_search_language.py:79 #: searx/plugins/autodetect_search_language.py:79
msgid "Autodetect search language" msgid "Autodetect search language"
msgstr "Detecção automática de idioma de pesquisa" msgstr ""
#: searx/plugins/autodetect_search_language.py:80 #: searx/plugins/autodetect_search_language.py:80
msgid "Automatically detect the query search language and switch to it." msgid "Automatically detect the query search language and switch to it."
msgstr "" msgstr ""
"Detecte automaticamente o idioma de pesquisa da consulta e mude para ele."
#: searx/plugins/hash_plugin.py:24 #: searx/plugins/hash_plugin.py:24
msgid "Converts strings to different hash digests." msgid "Converts strings to different hash digests."
@ -1521,3 +1518,4 @@ msgstr "ocultar vídeo"
#~ "href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\"" #~ "href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
#~ " rel=\"external\">saiba mais sobre os " #~ " rel=\"external\">saiba mais sobre os "
#~ "métodos de solicitação</a>" #~ "métodos de solicitação</a>"

@ -7,14 +7,13 @@
# Markus Heiser <markus.heiser@darmarit.de>, 2022, 2023. # Markus Heiser <markus.heiser@darmarit.de>, 2022, 2023.
# Alexandre Flament <alex@al-f.net>, 2022. # Alexandre Flament <alex@al-f.net>, 2022.
# peterT1D <kozlovic.peter@gmail.com>, 2022. # peterT1D <kozlovic.peter@gmail.com>, 2022.
# Nik Drešar <nik.dresar@gmail.com>, 2023.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-12-12 07:18+0000\n" "POT-Creation-Date: 2022-12-12 07:18+0000\n"
"PO-Revision-Date: 2023-01-13 07:14+0000\n" "PO-Revision-Date: 2023-01-06 07:14+0000\n"
"Last-Translator: Nik Drešar <nik.dresar@gmail.com>\n" "Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
"Language-Team: Slovenian <https://weblate.bubu1.eu/projects/searxng/searxng/" "Language-Team: Slovenian <https://weblate.bubu1.eu/projects/searxng/searxng/"
"sl/>\n" "sl/>\n"
"Language: sl\n" "Language: sl\n"
@ -29,7 +28,7 @@ msgstr ""
#. CONSTANT_NAMES['DEFAULT_GROUP_NAME'] #. CONSTANT_NAMES['DEFAULT_GROUP_NAME']
#: searx/searxng.msg #: searx/searxng.msg
msgid "others" msgid "others"
msgstr "Ostali" msgstr "Drugi"
#. CONSTANT_NAMES['OTHER_CATEGORY'] #. CONSTANT_NAMES['OTHER_CATEGORY']
#: searx/searxng.msg #: searx/searxng.msg
@ -266,7 +265,7 @@ msgstr "{title} (neveljaven)"
#: searx/engines/pdbe.py:103 #: searx/engines/pdbe.py:103
msgid "This entry has been superseded by" msgid "This entry has been superseded by"
msgstr "Ta vnos je bil nadomeščen z" msgstr "Ta vnos je bil presezen"
#: searx/engines/qwant.py:219 #: searx/engines/qwant.py:219
msgid "Channel" msgid "Channel"
@ -277,8 +276,6 @@ msgid ""
"{numCitations} citations from the year {firstCitationVelocityYear} to " "{numCitations} citations from the year {firstCitationVelocityYear} to "
"{lastCitationVelocityYear}" "{lastCitationVelocityYear}"
msgstr "" msgstr ""
"{numCitations} navedb od leta {firstCitationVelocityYear} do "
"{lastCitationVelocityYear}"
#: searx/engines/tineye.py:40 #: searx/engines/tineye.py:40
msgid "" msgid ""
@ -462,7 +459,7 @@ msgstr "Omogočeno z"
#: searx/templates/simple/base.html:64 #: searx/templates/simple/base.html:64
msgid "a privacy-respecting, open metasearch engine" msgid "a privacy-respecting, open metasearch engine"
msgstr "odprt metaiskalnik, ki spoštuje zasebnost" msgstr ""
#: searx/templates/simple/base.html:65 #: searx/templates/simple/base.html:65
msgid "Source code" msgid "Source code"
@ -529,37 +526,37 @@ msgstr "Če je to javna instanca, prosim specificirajte URL v poročilu o napaki
#: searx/templates/simple/new_issue.html:72 #: searx/templates/simple/new_issue.html:72
msgid "Submit a new issue on Github including the above information" msgid "Submit a new issue on Github including the above information"
msgstr "Predloži novo težavo na Githubu, vključno z zgornjimi informacijami" msgstr ""
#: searx/templates/simple/preferences.html:29 #: searx/templates/simple/preferences.html:29
msgid "No HTTPS" msgid "No HTTPS"
msgstr "Brez HTTPS" msgstr ""
#: searx/templates/simple/messages/no_results.html:10 #: searx/templates/simple/messages/no_results.html:10
#: searx/templates/simple/preferences.html:31 #: searx/templates/simple/preferences.html:31
#: searx/templates/simple/preferences.html:32 #: searx/templates/simple/preferences.html:32
#: searx/templates/simple/results.html:49 #: searx/templates/simple/results.html:49
msgid "View error logs and submit a bug report" msgid "View error logs and submit a bug report"
msgstr "Oglejte si dnevnike napak in pošljite poročilo o napakah" msgstr ""
#: searx/templates/simple/preferences.html:53 #: searx/templates/simple/preferences.html:53
#: searx/templates/simple/stats.html:64 #: searx/templates/simple/stats.html:64
msgid "Median" msgid "Median"
msgstr "Mediana" msgstr ""
#: searx/templates/simple/preferences.html:54 #: searx/templates/simple/preferences.html:54
#: searx/templates/simple/stats.html:70 #: searx/templates/simple/stats.html:70
msgid "P80" msgid "P80"
msgstr "P80" msgstr ""
#: searx/templates/simple/preferences.html:55 #: searx/templates/simple/preferences.html:55
#: searx/templates/simple/stats.html:76 #: searx/templates/simple/stats.html:76
msgid "P95" msgid "P95"
msgstr "P95" msgstr ""
#: searx/templates/simple/preferences.html:83 #: searx/templates/simple/preferences.html:83
msgid "Failed checker test(s): " msgid "Failed checker test(s): "
msgstr "Neuspešno opravljen(i) preizkus(i) preverjanja: " msgstr ""
#: searx/templates/simple/preferences.html:85 #: searx/templates/simple/preferences.html:85
msgid "Errors:" msgid "Errors:"
@ -625,7 +622,7 @@ msgstr "Filtriraj vsebino"
#: searx/templates/simple/preferences.html:157 #: searx/templates/simple/preferences.html:157
msgid "Open Access DOI resolver" msgid "Open Access DOI resolver"
msgstr "odprto dostopni DOI razreševalec" msgstr ""
#: searx/templates/simple/preferences.html:167 #: searx/templates/simple/preferences.html:167
msgid "" msgid ""
@ -637,11 +634,11 @@ msgstr ""
#: searx/templates/simple/preferences.html:171 #: searx/templates/simple/preferences.html:171
msgid "Engine tokens" msgid "Engine tokens"
msgstr "Žetoni za iskalnik" msgstr ""
#: searx/templates/simple/preferences.html:175 #: searx/templates/simple/preferences.html:175
msgid "Access tokens for private engines" msgid "Access tokens for private engines"
msgstr "Žetoni dostopa za zasebne iskalnike" msgstr ""
#: searx/templates/simple/preferences.html:179 #: searx/templates/simple/preferences.html:179
msgid "User interface" msgid "User interface"
@ -661,19 +658,19 @@ msgstr "Tema"
#: searx/templates/simple/preferences.html:203 #: searx/templates/simple/preferences.html:203
msgid "Change SearXNG layout" msgid "Change SearXNG layout"
msgstr "Spremenite postavitev SearXNG" msgstr ""
#: searx/templates/simple/preferences.html:206 #: searx/templates/simple/preferences.html:206
msgid "Theme style" msgid "Theme style"
msgstr "Slog teme" msgstr ""
#: searx/templates/simple/preferences.html:214 #: searx/templates/simple/preferences.html:214
msgid "Choose auto to follow your browser settings" msgid "Choose auto to follow your browser settings"
msgstr "Če želite slediti nastavitvam brskalnika, izberite samodejno" msgstr ""
#: searx/templates/simple/preferences.html:217 #: searx/templates/simple/preferences.html:217
msgid "Center Alignment" msgid "Center Alignment"
msgstr "Sredinska poravnava" msgstr ""
#: searx/templates/simple/preferences.html:220 #: searx/templates/simple/preferences.html:220
#: searx/templates/simple/preferences.html:232 #: searx/templates/simple/preferences.html:232
@ -689,7 +686,7 @@ msgstr "Izklopljeno"
#: searx/templates/simple/preferences.html:224 #: searx/templates/simple/preferences.html:224
msgid "Displays results in the center of the page (Oscar layout)." msgid "Displays results in the center of the page (Oscar layout)."
msgstr "Prikaže rezultate na sredini strani (postavitev Oscar)." msgstr ""
#: searx/templates/simple/preferences.html:229 #: searx/templates/simple/preferences.html:229
msgid "Results on new tabs" msgid "Results on new tabs"
@ -713,7 +710,7 @@ msgstr "Zasebnost"
#: searx/templates/simple/preferences.html:257 #: searx/templates/simple/preferences.html:257
msgid "HTTP Method" msgid "HTTP Method"
msgstr "metoda HTTP" msgstr ""
#: searx/templates/simple/preferences.html:264 #: searx/templates/simple/preferences.html:264
msgid "" msgid ""
@ -721,9 +718,6 @@ msgid ""
"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\"" "href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
" rel=\"external\">learn more about request methods</a>" " rel=\"external\">learn more about request methods</a>"
msgstr "" msgstr ""
"Spremenite način oddaje obrazcev, <a href=\"http://en.wikipedia.org/wiki/"
"Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\">izvedite več "
"o metodah zahtevka</a>"
#: searx/templates/simple/preferences.html:269 #: searx/templates/simple/preferences.html:269
msgid "Image proxy" msgid "Image proxy"
@ -741,19 +735,17 @@ msgstr "Onemogočeno"
#: searx/templates/simple/preferences.html:276 #: searx/templates/simple/preferences.html:276
msgid "Proxying image results through SearXNG" msgid "Proxying image results through SearXNG"
msgstr "Proxy rezultatov slik prek SearXNG" msgstr ""
#: searx/templates/simple/preferences.html:281 #: searx/templates/simple/preferences.html:281
msgid "Query in the page's title" msgid "Query in the page's title"
msgstr "Poizvedba v naslovu strani" msgstr ""
#: searx/templates/simple/preferences.html:288 #: searx/templates/simple/preferences.html:288
msgid "" msgid ""
"When enabled, the result page's title contains your query. Your browser " "When enabled, the result page's title contains your query. Your browser "
"can record this title" "can record this title"
msgstr "" msgstr ""
"Ko je omogočeno, naslov strani z rezultati vsebuje vašo poizvedbo. Vaš "
"brskalnik lahko posname ta naslov"
#: searx/templates/simple/preferences.html:294 #: searx/templates/simple/preferences.html:294
msgid "Engines" msgid "Engines"
@ -768,8 +760,6 @@ msgid ""
"This tab does not show up for search results, but you can search the " "This tab does not show up for search results, but you can search the "
"engines listed here via bangs." "engines listed here via bangs."
msgstr "" msgstr ""
"Ta zavihek se ne prikaže pri rezultatih iskanja, lahko pa iščete iskalnike, "
"navedene tukaj, prek bangs."
#: searx/templates/simple/preferences.html:307 #: searx/templates/simple/preferences.html:307
#: searx/templates/simple/preferences.html:358 #: searx/templates/simple/preferences.html:358
@ -810,7 +800,7 @@ msgstr "Zanesljivost"
#: searx/templates/simple/preferences.html:353 #: searx/templates/simple/preferences.html:353
msgid "Special Queries" msgid "Special Queries"
msgstr "Posebne poizvedbe" msgstr ""
#: searx/templates/simple/preferences.html:359 #: searx/templates/simple/preferences.html:359
msgid "Keywords" msgid "Keywords"
@ -830,11 +820,11 @@ msgstr "Primeri"
#: searx/templates/simple/preferences.html:365 #: searx/templates/simple/preferences.html:365
msgid "This is the list of SearXNG's instant answering modules." msgid "This is the list of SearXNG's instant answering modules."
msgstr "To je seznam modulov za takojšnje javljanje SearXNG." msgstr ""
#: searx/templates/simple/preferences.html:376 #: searx/templates/simple/preferences.html:376
msgid "This is the list of plugins." msgid "This is the list of plugins."
msgstr "To je seznam vtičnikov." msgstr "To je seznam vtičnikov"
#: searx/templates/simple/preferences.html:393 #: searx/templates/simple/preferences.html:393
msgid "Cookies" msgid "Cookies"
@ -845,12 +835,10 @@ msgid ""
"This is the list of cookies and their values SearXNG is storing on your " "This is the list of cookies and their values SearXNG is storing on your "
"computer." "computer."
msgstr "" msgstr ""
"To je seznam piškotkov in njihovih vrednosti, ki jih SearXNG shranjuje v vaš "
"računalnik."
#: searx/templates/simple/preferences.html:396 #: searx/templates/simple/preferences.html:396
msgid "With that list, you can assess SearXNG transparency." msgid "With that list, you can assess SearXNG transparency."
msgstr "S tem seznamom lahko ocenite transparentnost SearXNG." msgstr ""
#: searx/templates/simple/preferences.html:401 #: searx/templates/simple/preferences.html:401
msgid "Cookie name" msgid "Cookie name"
@ -874,15 +862,13 @@ msgstr ""
#: searx/templates/simple/preferences.html:419 #: searx/templates/simple/preferences.html:419
msgid "URL to restore your preferences in another browser" msgid "URL to restore your preferences in another browser"
msgstr "URL za obnovitev vaših nastavitev v drugem brskalniku" msgstr ""
#: searx/templates/simple/preferences.html:423 #: searx/templates/simple/preferences.html:423
msgid "" msgid ""
"Specifying custom settings in the preferences URL can be used to sync " "Specifying custom settings in the preferences URL can be used to sync "
"preferences across devices." "preferences across devices."
msgstr "" msgstr ""
"Določanje nastavitev po meri v URL-ju z nastavitvami se lahko uporabi za "
"sinhronizacijo nastavitev med napravami."
#: searx/templates/simple/preferences.html:428 #: searx/templates/simple/preferences.html:428
msgid "" msgid ""
@ -945,7 +931,7 @@ msgstr "Poskusite iskati:"
#: searx/templates/simple/results.html:152 #: searx/templates/simple/results.html:152
msgid "Back to top" msgid "Back to top"
msgstr "Nazaj na vrh" msgstr ""
#: searx/templates/simple/results.html:170 #: searx/templates/simple/results.html:170
msgid "Previous page" msgid "Previous page"
@ -957,7 +943,7 @@ msgstr "Naslednja stran"
#: searx/templates/simple/search.html:3 #: searx/templates/simple/search.html:3
msgid "Display the front page" msgid "Display the front page"
msgstr "Prikaži naslovno stran" msgstr ""
#: searx/templates/simple/search.html:9 #: searx/templates/simple/search.html:9
#: searx/templates/simple/simple_search.html:5 #: searx/templates/simple/simple_search.html:5
@ -967,7 +953,7 @@ msgstr "Poišči..."
#: searx/templates/simple/search.html:10 #: searx/templates/simple/search.html:10
#: searx/templates/simple/simple_search.html:6 #: searx/templates/simple/simple_search.html:6
msgid "clear" msgid "clear"
msgstr "počisti" msgstr ""
#: searx/templates/simple/search.html:11 #: searx/templates/simple/search.html:11
#: searx/templates/simple/simple_search.html:7 #: searx/templates/simple/simple_search.html:7
@ -984,19 +970,19 @@ msgstr "Točke"
#: searx/templates/simple/stats.html:27 #: searx/templates/simple/stats.html:27
msgid "Result count" msgid "Result count"
msgstr "Število rezultatov" msgstr ""
#: searx/templates/simple/stats.html:59 #: searx/templates/simple/stats.html:59
msgid "Total" msgid "Total"
msgstr "Skupaj" msgstr ""
#: searx/templates/simple/stats.html:60 #: searx/templates/simple/stats.html:60
msgid "HTTP" msgid "HTTP"
msgstr "HTTP" msgstr ""
#: searx/templates/simple/stats.html:61 #: searx/templates/simple/stats.html:61
msgid "Processing" msgid "Processing"
msgstr "obdelava" msgstr ""
#: searx/templates/simple/stats.html:99 #: searx/templates/simple/stats.html:99
msgid "Warnings" msgid "Warnings"
@ -1020,7 +1006,7 @@ msgstr "Odstotek"
#: searx/templates/simple/stats.html:111 #: searx/templates/simple/stats.html:111
msgid "Parameter" msgid "Parameter"
msgstr "Parameter" msgstr ""
#: searx/templates/simple/stats.html:119 #: searx/templates/simple/stats.html:119
msgid "Filename" msgid "Filename"
@ -1032,15 +1018,15 @@ msgstr "Funkcija"
#: searx/templates/simple/stats.html:121 #: searx/templates/simple/stats.html:121
msgid "Code" msgid "Code"
msgstr "Koda" msgstr ""
#: searx/templates/simple/stats.html:128 #: searx/templates/simple/stats.html:128
msgid "Checker" msgid "Checker"
msgstr "Pregledovalnik" msgstr ""
#: searx/templates/simple/stats.html:131 #: searx/templates/simple/stats.html:131
msgid "Failed test" msgid "Failed test"
msgstr "Neuspešen preizkus" msgstr ""
#: searx/templates/simple/stats.html:132 #: searx/templates/simple/stats.html:132
msgid "Comment(s)" msgid "Comment(s)"
@ -1109,7 +1095,7 @@ msgstr "Ta stran ni posredovala nobenega opisa."
#: searx/templates/simple/result_templates/images.html:19 #: searx/templates/simple/result_templates/images.html:19
msgid "Format" msgid "Format"
msgstr "Format" msgstr ""
#: searx/templates/simple/result_templates/images.html:21 #: searx/templates/simple/result_templates/images.html:21
msgid "Engine" msgid "Engine"
@ -1141,19 +1127,19 @@ msgstr "Revija"
#: searx/templates/simple/result_templates/paper.html:22 #: searx/templates/simple/result_templates/paper.html:22
msgid "Editor" msgid "Editor"
msgstr "Urejevalnik" msgstr ""
#: searx/templates/simple/result_templates/paper.html:23 #: searx/templates/simple/result_templates/paper.html:23
msgid "Publisher" msgid "Publisher"
msgstr "Založnik" msgstr ""
#: searx/templates/simple/result_templates/paper.html:24 #: searx/templates/simple/result_templates/paper.html:24
msgid "Type" msgid "Type"
msgstr "Vrsta" msgstr ""
#: searx/templates/simple/result_templates/paper.html:25 #: searx/templates/simple/result_templates/paper.html:25
msgid "Tags" msgid "Tags"
msgstr "Oznake" msgstr ""
#: searx/templates/simple/result_templates/paper.html:26 #: searx/templates/simple/result_templates/paper.html:26
msgid "DOI" msgid "DOI"

@ -6,25 +6,24 @@
# pvhn4 <pvhn4@protonmail.com>, 2017 # pvhn4 <pvhn4@protonmail.com>, 2017
# zubr139, 2016-2017 # zubr139, 2016-2017
# Andrij Mizyk <andmizyk@gmail.com>, 2022. # Andrij Mizyk <andmizyk@gmail.com>, 2022.
# Markus Heiser <markus.heiser@darmarit.de>, 2022, 2023. # Markus Heiser <markus.heiser@darmarit.de>, 2022.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-12-12 07:18+0000\n" "POT-Creation-Date: 2022-12-12 07:18+0000\n"
"PO-Revision-Date: 2023-01-13 07:14+0000\n" "PO-Revision-Date: 2022-11-25 07:16+0000\n"
"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n" "Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n"
"Language-Team: Ukrainian <https://weblate.bubu1.eu/projects/searxng/searxng/"
"uk/>\n"
"Language: uk\n" "Language: uk\n"
"Language-Team: Ukrainian "
"<https://weblate.bubu1.eu/projects/searxng/searxng/uk/>\n"
"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 !="
" 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n "
"% 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9)"
" || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 "
"? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > "
"14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % "
"100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
"X-Generator: Weblate 4.14.1\n"
"Generated-By: Babel 2.11.0\n" "Generated-By: Babel 2.11.0\n"
#. CONSTANT_NAMES['DEFAULT_GROUP_NAME'] #. CONSTANT_NAMES['DEFAULT_GROUP_NAME']
@ -278,8 +277,6 @@ msgid ""
"{numCitations} citations from the year {firstCitationVelocityYear} to " "{numCitations} citations from the year {firstCitationVelocityYear} to "
"{lastCitationVelocityYear}" "{lastCitationVelocityYear}"
msgstr "" msgstr ""
"{numCitations} цитувань з {firstCitationVelocityYear} по "
"{lastCitationVelocityYear} рік"
#: searx/engines/tineye.py:40 #: searx/engines/tineye.py:40
msgid "" msgid ""
@ -287,9 +284,6 @@ msgid ""
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or" "format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
" WebP." " WebP."
msgstr "" msgstr ""
"Не вдалось зчитати зображення за вказаним URL. Можливо, тому що формат "
"даного зображення не підтримується. TinEye підтримує зображення у форматах "
"JPEG, PNG, GIF, BMP, TIFF та WebP."
#: searx/engines/tineye.py:46 #: searx/engines/tineye.py:46
msgid "" msgid ""
@ -305,7 +299,7 @@ msgstr "Зображення не можливо завантажити."
#: searx/engines/wttr.py:101 #: searx/engines/wttr.py:101
msgid "Morning" msgid "Morning"
msgstr "Ранок" msgstr ""
#: searx/engines/wttr.py:101 #: searx/engines/wttr.py:101
msgid "Noon" msgid "Noon"
@ -1478,3 +1472,4 @@ msgstr "приховати відео"
#~ "href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\"" #~ "href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
#~ " rel=\"external\">детальніше про методи " #~ " rel=\"external\">детальніше про методи "
#~ "запитів</a>" #~ "запитів</a>"

@ -59,34 +59,27 @@ def get_git_url_and_branch():
def get_git_version(): def get_git_version():
git_commit_date_hash = subprocess_run(r"git show -s --date='format:%-Y.%-m.%-d' --format='%cd+%h'") git_commit_date_hash = subprocess_run(r"git show -s --date='format:%Y.%m.%d' --format='%cd-%h'")
tag_version = git_version = git_commit_date_hash tag_version = git_version = git_commit_date_hash
# add "+dirty" suffix if there are uncommited changes except searx/settings.yml # add "-dirty" suffix if there are uncommited changes except searx/settings.yml
try: try:
subprocess_run("git diff --quiet -- . ':!searx/settings.yml' ':!utils/brand.env'") subprocess_run("git diff --quiet -- . ':!searx/settings.yml' ':!utils/brand.env'")
except subprocess.CalledProcessError as e: except subprocess.CalledProcessError as e:
if e.returncode == 1: if e.returncode == 1:
git_version += "+dirty" git_version += "-dirty"
else: else:
logger.warning('"%s" returns an unexpected return code %i', e.returncode, e.cmd) logger.warning('"%s" returns an unexpected return code %i', e.returncode, e.cmd)
docker_tag = git_version.replace("+", "-") return git_version, tag_version
return git_version, tag_version, docker_tag
try: try:
vf = importlib.import_module('searx.version_frozen') vf = importlib.import_module('searx.version_frozen')
VERSION_STRING, VERSION_TAG, DOCKER_TAG, GIT_URL, GIT_BRANCH = ( VERSION_STRING, VERSION_TAG, GIT_URL, GIT_BRANCH = vf.VERSION_STRING, vf.VERSION_TAG, vf.GIT_URL, vf.GIT_BRANCH
vf.VERSION_STRING,
vf.VERSION_TAG,
vf.DOCKER_TAG,
vf.GIT_URL,
vf.GIT_BRANCH,
)
except ImportError: except ImportError:
try: try:
try: try:
VERSION_STRING, VERSION_TAG, DOCKER_TAG = get_git_version() VERSION_STRING, VERSION_TAG = get_git_version()
except subprocess.CalledProcessError as ex: except subprocess.CalledProcessError as ex:
logger.error("Error while getting the version: %s", ex.stderr) logger.error("Error while getting the version: %s", ex.stderr)
try: try:
@ -109,7 +102,6 @@ if __name__ == "__main__":
VERSION_STRING = "{VERSION_STRING}" VERSION_STRING = "{VERSION_STRING}"
VERSION_TAG = "{VERSION_TAG}" VERSION_TAG = "{VERSION_TAG}"
DOCKER_TAG = "{DOCKER_TAG}"
GIT_URL = "{GIT_URL}" GIT_URL = "{GIT_URL}"
GIT_BRANCH = "{GIT_BRANCH}" GIT_BRANCH = "{GIT_BRANCH}"
""" """
@ -122,7 +114,6 @@ GIT_BRANCH = "{GIT_BRANCH}"
shell_code = f""" shell_code = f"""
VERSION_STRING="{VERSION_STRING}" VERSION_STRING="{VERSION_STRING}"
VERSION_TAG="{VERSION_TAG}" VERSION_TAG="{VERSION_TAG}"
DOCKER_TAG="{DOCKER_TAG}"
GIT_URL="{GIT_URL}" GIT_URL="{GIT_URL}"
GIT_BRANCH="{GIT_BRANCH}" GIT_BRANCH="{GIT_BRANCH}"
""" """

@ -113,68 +113,31 @@ def prettify_url(url, max_length=74):
return url return url
def contains_cjko(s: str) -> bool:
"""This function check whether or not a string contains Chinese, Japanese,
or Korean characters. It employs regex and uses the u escape sequence to
match any character in a set of Unicode ranges.
Args:
s (str): string to be checked.
Returns:
bool: True if the input s contains the characters and False otherwise.
"""
unicode_ranges = (
'\u4e00-\u9fff' # Chinese characters
'\u3040-\u309f' # Japanese hiragana
'\u30a0-\u30ff' # Japanese katakana
'\u4e00-\u9faf' # Japanese kanji
'\uac00-\ud7af' # Korean hangul syllables
'\u1100-\u11ff' # Korean hangul jamo
)
return bool(re.search(fr'[{unicode_ranges}]', s))
def regex_highlight_cjk(word: str) -> str:
"""Generate the regex pattern to match for a given word according
to whether or not the word contains CJK characters or not.
If the word is and/or contains CJK character, the regex pattern
will match standalone word by taking into account the presence
of whitespace before and after it; if not, it will match any presence
of the word throughout the text, ignoring the whitespace.
Args:
word (str): the word to be matched with regex pattern.
Returns:
str: the regex pattern for the word.
"""
rword = re.escape(word)
if contains_cjko(rword):
return fr'({rword})'
else:
return fr'\b({rword})(?!\w)'
def highlight_content(content, query): def highlight_content(content, query):
if not content: if not content:
return None return None
# ignoring html contents # ignoring html contents
# TODO better html content detection # TODO better html content detection
if content.find('<') != -1: if content.find('<') != -1:
return content return content
querysplit = query.split() if content.lower().find(query.lower()) > -1:
queries = [] query_regex = '({0})'.format(re.escape(query))
for qs in querysplit: content = re.sub(query_regex, '<span class="highlight">\\1</span>', content, flags=re.I | re.U)
qs = qs.replace("'", "").replace('"', '').replace(" ", "") else:
if len(qs) > 0: regex_parts = []
queries.extend(re.findall(regex_highlight_cjk(qs), content, flags=re.I | re.U)) for chunk in query.split():
if len(queries) > 0: chunk = chunk.replace('"', '')
for q in set(queries): if len(chunk) == 0:
content = re.sub(regex_highlight_cjk(q), f'<span class="highlight">{q}</span>', content) continue
elif len(chunk) == 1:
regex_parts.append('\\W+{0}\\W+'.format(re.escape(chunk)))
else:
regex_parts.append('{0}'.format(re.escape(chunk)))
query_regex = '({0})'.format('|'.join(regex_parts))
content = re.sub(query_regex, '<span class="highlight">\\1</span>', content, flags=re.I | re.U)
return content return content

@ -1,41 +0,0 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
from tests import SearxTestCase
import searx.exceptions
from searx import get_setting
class TestExceptions(SearxTestCase):
def test_default_suspend_time(self):
with self.assertRaises(searx.exceptions.SearxEngineAccessDeniedException) as e:
raise searx.exceptions.SearxEngineAccessDeniedException()
self.assertEqual(
e.exception.suspended_time,
get_setting(searx.exceptions.SearxEngineAccessDeniedException.SUSPEND_TIME_SETTING),
)
with self.assertRaises(searx.exceptions.SearxEngineCaptchaException) as e:
raise searx.exceptions.SearxEngineCaptchaException()
self.assertEqual(
e.exception.suspended_time, get_setting(searx.exceptions.SearxEngineCaptchaException.SUSPEND_TIME_SETTING)
)
with self.assertRaises(searx.exceptions.SearxEngineTooManyRequestsException) as e:
raise searx.exceptions.SearxEngineTooManyRequestsException()
self.assertEqual(
e.exception.suspended_time,
get_setting(searx.exceptions.SearxEngineTooManyRequestsException.SUSPEND_TIME_SETTING),
)
def test_custom_suspend_time(self):
with self.assertRaises(searx.exceptions.SearxEngineAccessDeniedException) as e:
raise searx.exceptions.SearxEngineAccessDeniedException(suspended_time=1337)
self.assertEqual(e.exception.suspended_time, 1337)
with self.assertRaises(searx.exceptions.SearxEngineCaptchaException) as e:
raise searx.exceptions.SearxEngineCaptchaException(suspended_time=1409)
self.assertEqual(e.exception.suspended_time, 1409)
with self.assertRaises(searx.exceptions.SearxEngineTooManyRequestsException) as e:
raise searx.exceptions.SearxEngineTooManyRequestsException(suspended_time=1543)
self.assertEqual(e.exception.suspended_time, 1543)

@ -28,33 +28,32 @@ class TestWebUtils(SearxTestCase):
content = 'a' content = 'a'
query = 'test' query = 'test'
self.assertEqual(webutils.highlight_content(content, query), 'a') self.assertEqual(webutils.highlight_content(content, query), content)
query = 'a test' query = 'a test'
self.assertEqual(webutils.highlight_content(content, query), '<span class="highlight">a</span>') self.assertEqual(webutils.highlight_content(content, query), content)
data = ( data = (
('" test "', 'a test string', 'a <span class="highlight">test</span> string'), ('" test "', 'a test string', 'a <span class="highlight">test</span> string'),
('"a"', 'this is a test string', 'this is <span class="highlight">a</span> test string'), ('"a"', 'this is a test string', 'this is<span class="highlight"> a </span>test string'),
( (
'a test', 'a test',
'this is a test string that matches entire query', 'this is a test string that matches entire query',
'this is <span class="highlight">a</span> <span class="highlight">test</span> string that matches entire query', 'this is <span class="highlight">a test</span> string that matches entire query',
), ),
( (
'this a test', 'this a test',
'this is a string to test.', 'this is a string to test.',
( (
'<span class="highlight">this</span> is <span class="highlight">a</span> string to <span class="highlight">test</span>.' '<span class="highlight">this</span> is<span class="highlight"> a </span>'
'string to <span class="highlight">test</span>.'
), ),
), ),
( (
'match this "exact phrase"', 'match this "exact phrase"',
'this string contains the exact phrase we want to match', 'this string contains the exact phrase we want to match',
''.join( (
[ '<span class="highlight">this</span> string contains the <span class="highlight">exact</span>'
'<span class="highlight">this</span> string contains the <span class="highlight">exact</span> ', ' <span class="highlight">phrase</span> we want to <span class="highlight">match</span>'
'<span class="highlight">phrase</span> we want to <span class="highlight">match</span>',
]
), ),
), ),
) )

Loading…
Cancel
Save