mirror of
https://github.com/searxng/searxng.git
synced 2026-09-14 18:26:04 +00:00
Compare commits
12 Commits
51403f9b58
...
bb64231355
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bb64231355 | ||
|
|
84c3a832a4 | ||
|
|
802bf4f9e7 | ||
|
|
6b16a04e7e | ||
|
|
b01d32d69d | ||
|
|
f7c8e4c353 | ||
|
|
42f102ce1b | ||
|
|
5cbf422621 | ||
|
|
b95a3e905d | ||
|
|
be392a45fc | ||
|
|
ff2e0ea278 | ||
|
|
22c6cd4121 |
@@ -51,8 +51,7 @@ ENV SEARXNG_VERSION="$SEARXNG_GIT_VERSION" \
|
||||
GRANIAN_LOOP="uvloop" \
|
||||
GRANIAN_BLOCKING_THREADS="4" \
|
||||
GRANIAN_WORKERS_KILL_TIMEOUT="30" \
|
||||
GRANIAN_BLOCKING_THREADS_IDLE_TIMEOUT="300" \
|
||||
GRANIAN_STATIC_PATH_MOUNT="/usr/local/searxng/searx/static/"
|
||||
GRANIAN_BLOCKING_THREADS_IDLE_TIMEOUT="300"
|
||||
|
||||
VOLUME $CONFIG_PATH
|
||||
VOLUME $DATA_PATH
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
certifi==2025.7.9
|
||||
certifi==2025.7.14
|
||||
babel==2.17.0
|
||||
flask-babel==4.0.0
|
||||
flask==3.1.1
|
||||
@@ -19,3 +19,4 @@ tomli==2.2.1; python_version < '3.11'
|
||||
msgspec==0.19.0
|
||||
typer-slim==0.16.0
|
||||
isodate==0.7.2
|
||||
whitenoise==6.9.0
|
||||
|
||||
@@ -10,9 +10,8 @@ import re
|
||||
from collections.abc import Iterator
|
||||
from urllib.parse import urlparse, urlunparse, parse_qsl, urlencode
|
||||
|
||||
import httpx
|
||||
|
||||
from searx.data.core import get_cache, log
|
||||
from searx.network import get as http_get
|
||||
|
||||
RuleType = tuple[str, list[str], list[str]]
|
||||
|
||||
@@ -44,7 +43,7 @@ class TrackerPatternsDB:
|
||||
self.cache.properties.set("tracker_patterns loaded", "OK")
|
||||
self.load()
|
||||
# F I X M E:
|
||||
# do we need a maintenance .. rember: database is stored
|
||||
# do we need a maintenance .. remember: database is stored
|
||||
# in /tmp and will be rebuild during the reboot anyway
|
||||
|
||||
def load(self):
|
||||
@@ -71,7 +70,7 @@ class TrackerPatternsDB:
|
||||
def iter_clear_list(self) -> Iterator[RuleType]:
|
||||
resp = None
|
||||
for url in self.CLEAR_LIST_URL:
|
||||
resp = httpx.get(url, timeout=3)
|
||||
resp = http_get(url, timeout=3)
|
||||
if resp.status_code == 200:
|
||||
break
|
||||
log.warning(f"TRACKER_PATTERNS: ClearURL ignore HTTP {resp.status_code} {url}")
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Wordnik (general)
|
||||
|
||||
"""
|
||||
"""Wordnik (general)"""
|
||||
|
||||
from lxml.html import fromstring
|
||||
from searx.utils import extract_text
|
||||
from searx.network import raise_for_httperror
|
||||
|
||||
from searx.result_types import EngineResults
|
||||
|
||||
# about
|
||||
about = {
|
||||
@@ -17,7 +16,7 @@ about = {
|
||||
"results": 'HTML',
|
||||
}
|
||||
|
||||
categories = ['general']
|
||||
categories = ['dictionaries', 'define']
|
||||
paging = False
|
||||
|
||||
|
||||
@@ -27,46 +26,23 @@ def request(query, params):
|
||||
|
||||
|
||||
def response(resp):
|
||||
results = []
|
||||
results = EngineResults()
|
||||
|
||||
raise_for_httperror(resp)
|
||||
dom = fromstring(resp.text)
|
||||
word = extract_text(dom.xpath('//*[@id="headword"]/text()'))
|
||||
|
||||
definitions = []
|
||||
for src in dom.xpath('//*[@id="define"]//h3[@class="source"]'):
|
||||
src_text = extract_text(src).strip()
|
||||
if src_text.startswith('from '):
|
||||
src_text = src_text[5:]
|
||||
|
||||
src_defs = []
|
||||
item = results.types.Translations.Item(text="")
|
||||
for def_item in src.xpath('following-sibling::ul[1]/li'):
|
||||
def_abbr = extract_text(def_item.xpath('.//abbr')).strip()
|
||||
def_text = extract_text(def_item).strip()
|
||||
if def_abbr:
|
||||
def_text = def_text[len(def_abbr) :].strip()
|
||||
src_defs.append((def_abbr, def_text))
|
||||
|
||||
definitions.append((src_text, src_defs))
|
||||
# use first result as summary
|
||||
if not item.text:
|
||||
item.text = def_text
|
||||
item.definitions.append(def_text)
|
||||
|
||||
if not definitions:
|
||||
return results
|
||||
|
||||
infobox = ''
|
||||
for src_text, src_defs in definitions:
|
||||
infobox += f"<small>{src_text}</small>"
|
||||
infobox += "<ul>"
|
||||
for def_abbr, def_text in src_defs:
|
||||
if def_abbr:
|
||||
def_abbr += ": "
|
||||
infobox += f"<li><i>{def_abbr}</i> {def_text}</li>"
|
||||
infobox += "</ul>"
|
||||
|
||||
results.append(
|
||||
{
|
||||
'infobox': word,
|
||||
'content': infobox,
|
||||
}
|
||||
)
|
||||
results.add(results.types.Translations(translations=[item], url=resp.search_params["url"]))
|
||||
|
||||
return results
|
||||
|
||||
@@ -2494,8 +2494,7 @@ engines:
|
||||
|
||||
- name: wordnik
|
||||
engine: wordnik
|
||||
shortcut: def
|
||||
categories: [dictionaries]
|
||||
shortcut: wnik
|
||||
timeout: 5.0
|
||||
|
||||
- name: woxikon.de synonyme
|
||||
|
||||
@@ -150,7 +150,7 @@ SCHEMA = {
|
||||
'new_issue_url': SettingsValue(str, 'https://github.com/searxng/searxng/issues/new'),
|
||||
'docs_url': SettingsValue(str, 'https://docs.searxng.org'),
|
||||
'public_instances': SettingsValue((False, str), 'https://searx.space'),
|
||||
'wiki_url': SettingsValue(str, 'https://github.com/searxng/searxng/wiki'),
|
||||
'wiki_url': SettingsValue((False, str), 'https://github.com/searxng/searxng/wiki'),
|
||||
'custom': SettingsValue(dict, {'links': {}}),
|
||||
},
|
||||
'search': {
|
||||
|
||||
Binary file not shown.
@@ -24,20 +24,22 @@
|
||||
# akwceles <akwceles@users.noreply.translate.codeberg.org>, 2025.
|
||||
# dansmachina <dansmachina@noreply.codeberg.org>, 2025.
|
||||
# return42 <return42@noreply.codeberg.org>, 2025.
|
||||
# eudemo <eudemo@noreply.codeberg.org>, 2025.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2025-07-03 14:46+0000\n"
|
||||
"PO-Revision-Date: 2025-06-22 17:06+0000\n"
|
||||
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
|
||||
"PO-Revision-Date: 2025-07-24 15:15+0000\n"
|
||||
"Last-Translator: eudemo <eudemo@noreply.codeberg.org>\n"
|
||||
"Language-Team: Catalan <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/ca/>\n"
|
||||
"Language: ca\n"
|
||||
"Language-Team: Catalan "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/ca/>\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.12.2\n"
|
||||
"Generated-By: Babel 2.17.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
@@ -296,7 +298,7 @@ msgstr "Cel buidat"
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Partly cloudy"
|
||||
msgstr ""
|
||||
msgstr "Parcialment ennuvolat"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
@@ -316,42 +318,42 @@ msgstr "Boira"
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Light rain and thunder"
|
||||
msgstr ""
|
||||
msgstr "Pluja lleugera i trons"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Light rain showers and thunder"
|
||||
msgstr ""
|
||||
msgstr "Ruixats lleugers i trons"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Light rain showers"
|
||||
msgstr ""
|
||||
msgstr "Ruixats lleugers"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Light rain"
|
||||
msgstr ""
|
||||
msgstr "Pluja lleugera"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Rain and thunder"
|
||||
msgstr ""
|
||||
msgstr "Tempesta"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Rain showers and thunder"
|
||||
msgstr ""
|
||||
msgstr "Ruixats i trons"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Rain showers"
|
||||
msgstr ""
|
||||
msgstr "Ruixats"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Rain"
|
||||
msgstr ""
|
||||
msgstr "Pluja"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
@@ -396,7 +398,7 @@ msgstr ""
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Sleet and thunder"
|
||||
msgstr ""
|
||||
msgstr "Calamarsa i trons"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
@@ -411,7 +413,7 @@ msgstr ""
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Sleet"
|
||||
msgstr ""
|
||||
msgstr "Calamarsa"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
@@ -471,7 +473,7 @@ msgstr ""
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Snow"
|
||||
msgstr ""
|
||||
msgstr "Neu"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
@@ -2367,4 +2369,3 @@ msgstr "oculta el vídeo"
|
||||
|
||||
#~ msgid "Change SearXNG layout"
|
||||
#~ msgstr "Canvia l'aparença de SearXNG"
|
||||
|
||||
|
||||
Binary file not shown.
@@ -28,16 +28,17 @@ msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2025-07-03 14:46+0000\n"
|
||||
"PO-Revision-Date: 2025-06-28 09:58+0000\n"
|
||||
"Last-Translator: Fjuro <git@alius.cz>\n"
|
||||
"PO-Revision-Date: 2025-07-22 10:57+0000\n"
|
||||
"Last-Translator: Fjuro <fjuro@alius.cz>\n"
|
||||
"Language-Team: Czech <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/cs/>\n"
|
||||
"Language: cs\n"
|
||||
"Language-Team: Czech "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/cs/>\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && "
|
||||
"n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n "
|
||||
"<= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
|
||||
"X-Generator: Weblate 5.12.2\n"
|
||||
"Generated-By: Babel 2.17.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
@@ -828,7 +829,7 @@ msgstr "Nepoužíváte Tor a máte externí IP adresu"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:35
|
||||
msgid "Tracker URL remover"
|
||||
msgstr "Odstraňovač sledovacích URL"
|
||||
msgstr "Odstranit sledovací URL"
|
||||
|
||||
#: searx/plugins/tracker_url_remover.py:36
|
||||
msgid "Remove trackers arguments from the returned URL"
|
||||
@@ -927,7 +928,7 @@ msgstr "archivovaná verze"
|
||||
|
||||
#: searx/templates/simple/new_issue.html:64
|
||||
msgid "Start submitting a new issue on GitHub"
|
||||
msgstr "Začněte přidávat novou chybu na Githubu"
|
||||
msgstr "Přidat nový problém na GitHub"
|
||||
|
||||
#: searx/templates/simple/new_issue.html:66
|
||||
msgid "Please check for existing bugs about this engine on GitHub"
|
||||
@@ -941,11 +942,11 @@ msgstr ""
|
||||
|
||||
#: searx/templates/simple/new_issue.html:71
|
||||
msgid "If this is a public instance, please specify the URL in the bug report"
|
||||
msgstr "Pokud je tohle veřejná instance, prosím specifikujte URL v náhlášení chyby"
|
||||
msgstr "Pokud je toto veřejná instance, uveďte prosím URL v náhlášení chyby"
|
||||
|
||||
#: searx/templates/simple/new_issue.html:72
|
||||
msgid "Submit a new issue on Github including the above information"
|
||||
msgstr "Odeslání nového problému na Github včetně výše uvedených informací"
|
||||
msgstr "Odeslat nový problém na GitHub včetně výše uvedených informací"
|
||||
|
||||
#: searx/templates/simple/preferences.html:65
|
||||
msgid "No HTTPS"
|
||||
@@ -1245,7 +1246,7 @@ msgstr "Vypnuto"
|
||||
#: searx/templates/simple/filters/time_range.html:1
|
||||
#: searx/templates/simple/preferences/engines.html:28
|
||||
msgid "Time range"
|
||||
msgstr "Čásový interval"
|
||||
msgstr "Časový interval"
|
||||
|
||||
#: searx/templates/simple/filters/time_range.html:3
|
||||
msgid "Anytime"
|
||||
@@ -2366,4 +2367,3 @@ msgstr "skrýt video"
|
||||
|
||||
#~ msgid "Change SearXNG layout"
|
||||
#~ msgstr "Změnit vzhled SearXNG"
|
||||
|
||||
|
||||
Binary file not shown.
@@ -21,15 +21,16 @@ msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2025-07-03 14:46+0000\n"
|
||||
"PO-Revision-Date: 2025-06-26 02:46+0000\n"
|
||||
"PO-Revision-Date: 2025-07-19 08:08+0000\n"
|
||||
"Last-Translator: Priit Jõerüüt <jrtcdbrg@noreply.codeberg.org>\n"
|
||||
"Language-Team: Estonian <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/et/>\n"
|
||||
"Language: et\n"
|
||||
"Language-Team: Estonian "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/et/>\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.12.2\n"
|
||||
"Generated-By: Babel 2.17.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
@@ -1571,7 +1572,7 @@ msgstr ""
|
||||
|
||||
#: searx/templates/simple/preferences/theme.html:2
|
||||
msgid "Theme"
|
||||
msgstr "Teema"
|
||||
msgstr "Kujundus"
|
||||
|
||||
#: searx/templates/simple/preferences/theme.html:14
|
||||
msgid "Change the layout of SearXNG"
|
||||
@@ -2351,4 +2352,3 @@ msgstr "peida video"
|
||||
|
||||
#~ msgid "Change SearXNG layout"
|
||||
#~ msgstr "Muuda SearXNG paigutust"
|
||||
|
||||
|
||||
Binary file not shown.
@@ -21,15 +21,16 @@ msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2025-07-03 14:46+0000\n"
|
||||
"PO-Revision-Date: 2025-06-22 17:06+0000\n"
|
||||
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
|
||||
"PO-Revision-Date: 2025-07-21 15:53+0000\n"
|
||||
"Last-Translator: alexgabi <alexgabi@noreply.codeberg.org>\n"
|
||||
"Language-Team: Basque <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/eu/>\n"
|
||||
"Language: eu\n"
|
||||
"Language-Team: Basque "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/eu/>\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.12.2\n"
|
||||
"Generated-By: Babel 2.17.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
@@ -288,7 +289,7 @@ msgstr "Oskarbi"
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Partly cloudy"
|
||||
msgstr ""
|
||||
msgstr "Ostarteak"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
@@ -308,42 +309,42 @@ msgstr "Lainoa"
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Light rain and thunder"
|
||||
msgstr ""
|
||||
msgstr "Euri arina eta trumoiak"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Light rain showers and thunder"
|
||||
msgstr ""
|
||||
msgstr "Euri zaparrada arinak eta trumoiak"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Light rain showers"
|
||||
msgstr ""
|
||||
msgstr "Euri zaparrada arinak"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Light rain"
|
||||
msgstr ""
|
||||
msgstr "Euri arina"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Rain and thunder"
|
||||
msgstr ""
|
||||
msgstr "Euria eta trumoiak"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Rain showers and thunder"
|
||||
msgstr ""
|
||||
msgstr "Zaparradak eta trumoiak"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Rain showers"
|
||||
msgstr ""
|
||||
msgstr "Euri zaparradak"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Rain"
|
||||
msgstr ""
|
||||
msgstr "Euria"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
@@ -368,22 +369,22 @@ msgstr "Euri trinkoa"
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Light sleet and thunder"
|
||||
msgstr ""
|
||||
msgstr "Elurbusti arina eta trumoiak"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Light sleet showers and thunder"
|
||||
msgstr ""
|
||||
msgstr "Elurbusti arineko zaparradak eta trumoiak"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Light sleet showers"
|
||||
msgstr ""
|
||||
msgstr "Elurbusti arineko zaparradak"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Light sleet"
|
||||
msgstr ""
|
||||
msgstr "Elurbusti arina"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
@@ -2336,4 +2337,3 @@ msgstr "ezkutatu bideoa"
|
||||
|
||||
#~ msgid "Change SearXNG layout"
|
||||
#~ msgstr "Aldatu SearXNGren diseinua"
|
||||
|
||||
|
||||
Binary file not shown.
@@ -41,13 +41,14 @@
|
||||
# wags07 <wags07@noreply.codeberg.org>, 2025.
|
||||
# demilune <demilune@noreply.codeberg.org>, 2025.
|
||||
# Hēphaistos <hephaistos@noreply.codeberg.org>, 2025.
|
||||
# ledjfou <ledjfou@noreply.codeberg.org>, 2025.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2025-07-03 14:46+0000\n"
|
||||
"PO-Revision-Date: 2025-07-13 23:08+0000\n"
|
||||
"Last-Translator: Hēphaistos <hephaistos@noreply.codeberg.org>\n"
|
||||
"PO-Revision-Date: 2025-07-20 14:08+0000\n"
|
||||
"Last-Translator: ledjfou <ledjfou@noreply.codeberg.org>\n"
|
||||
"Language-Team: French <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/fr/>\n"
|
||||
"Language: fr\n"
|
||||
@@ -787,6 +788,8 @@ msgstr "Module de noms d’hôtes"
|
||||
#: searx/plugins/hostnames.py:124
|
||||
msgid "Rewrite hostnames and remove or prioritize results based on the hostname"
|
||||
msgstr ""
|
||||
"Personnalisez vos résultats en redirigeant les liens et en filtrant les "
|
||||
"sites affichés"
|
||||
|
||||
#: searx/plugins/oa_doi_rewrite.py:55
|
||||
msgid "Open Access DOI rewrite"
|
||||
@@ -1397,7 +1400,6 @@ msgid "Value"
|
||||
msgstr "Valeur"
|
||||
|
||||
#: searx/templates/simple/preferences/cookies.html:23
|
||||
#, fuzzy
|
||||
msgid "Search URL of the currently saved preferences"
|
||||
msgstr ""
|
||||
"URL de recherche définie selon les préférences actuellement sauvegardées"
|
||||
@@ -1535,7 +1537,7 @@ msgstr "Proxy d'images"
|
||||
|
||||
#: searx/templates/simple/preferences/image_proxy.html:14
|
||||
msgid "Proxy image results through SearXNG"
|
||||
msgstr ""
|
||||
msgstr "Résultats des images proxy via SearXNG"
|
||||
|
||||
#: searx/templates/simple/preferences/infinite_scroll.html:2
|
||||
msgid "Infinite scroll"
|
||||
|
||||
Binary file not shown.
@@ -49,8 +49,8 @@ msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2025-07-03 14:46+0000\n"
|
||||
"PO-Revision-Date: 2025-07-16 06:08+0000\n"
|
||||
"Last-Translator: Juno Takano <jutty@noreply.codeberg.org>\n"
|
||||
"PO-Revision-Date: 2025-07-22 10:57+0000\n"
|
||||
"Last-Translator: \"lucasmz.dev\" <lucasmz.dev@noreply.codeberg.org>\n"
|
||||
"Language-Team: Portuguese (Brazil) <https://translate.codeberg.org/projects/"
|
||||
"searxng/searxng/pt_BR/>\n"
|
||||
"Language: pt_BR\n"
|
||||
@@ -362,12 +362,12 @@ msgstr "Chuva com trovões"
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Rain showers and thunder"
|
||||
msgstr "Chuva contínua com trovões"
|
||||
msgstr "Chuva rápida com trovões"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Rain showers"
|
||||
msgstr "Chuva contínua"
|
||||
msgstr "Chuva rápida"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
@@ -382,12 +382,12 @@ msgstr "Chuva intensa com trovões"
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Heavy rain showers and thunder"
|
||||
msgstr "Chuva intensa contínua com trovões"
|
||||
msgstr "Chuva rápida e intensa com trovões"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Heavy rain showers"
|
||||
msgstr "Chuva intensa contínua"
|
||||
msgstr "Chuva rápida e intensa"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
@@ -402,12 +402,12 @@ msgstr "Granizo leve com trovões"
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Light sleet showers and thunder"
|
||||
msgstr "Granizo leve contínuo com trovões"
|
||||
msgstr "Granizo leve e rápido com trovões"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Light sleet showers"
|
||||
msgstr "Granizo leve contínuo"
|
||||
msgstr "Granizo leve e rápido"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
@@ -422,12 +422,12 @@ msgstr "Granizo com trovões"
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Sleet showers and thunder"
|
||||
msgstr "Granizo contínuo com trovões"
|
||||
msgstr "Granizo rápido com trovões"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Sleet showers"
|
||||
msgstr "Granizo contínuo"
|
||||
msgstr "Granizo rápido"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
@@ -442,12 +442,12 @@ msgstr "Granizo intenso com trovões"
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Heavy sleet showers and thunder"
|
||||
msgstr "Granizo intenso contínuo com trovões"
|
||||
msgstr "Granizo pesado rápido com trovões"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Heavy sleet showers"
|
||||
msgstr "Granizo intenso contínuo"
|
||||
msgstr "Chuvas rápidas e intensas de granizo"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
@@ -462,12 +462,12 @@ msgstr "Neve fraca com trovões"
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Light snow showers and thunder"
|
||||
msgstr "Neve fraca contínua com trovões"
|
||||
msgstr "Neve fraca e rápida com trovões"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Light snow showers"
|
||||
msgstr "Neve fraca contínua"
|
||||
msgstr "Neve fraca e rápida"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
@@ -482,12 +482,12 @@ msgstr "Neve com trovões"
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Snow showers and thunder"
|
||||
msgstr "Neve contínua com trovões"
|
||||
msgstr "Neve rápida com trovões"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Snow showers"
|
||||
msgstr "Neve contínua"
|
||||
msgstr "Neve rápida"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
@@ -502,12 +502,12 @@ msgstr "Neve pesada com trovões"
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Heavy snow showers and thunder"
|
||||
msgstr "Neve intensa contínua com trovões"
|
||||
msgstr "Neve intensa rápida com trovões"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Heavy snow showers"
|
||||
msgstr "Neve intensa contínua"
|
||||
msgstr "Neve intensa rápida"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
@@ -1107,7 +1107,7 @@ msgstr "Tempo de resposta"
|
||||
#: searx/templates/simple/preferences/engines.html:35
|
||||
#: searx/templates/simple/stats.html:29
|
||||
msgid "Reliability"
|
||||
msgstr "Consistência"
|
||||
msgstr "Confiabilidade"
|
||||
|
||||
#: searx/templates/simple/stats.html:59
|
||||
msgid "Total"
|
||||
|
||||
Binary file not shown.
@@ -30,22 +30,25 @@
|
||||
# return42 <return42@noreply.codeberg.org>, 2025.
|
||||
# yurtpage <yurtpage@noreply.codeberg.org>, 2025.
|
||||
# kotovasia <kotovasia@noreply.codeberg.org>, 2025.
|
||||
# IcewindX <icewindx@noreply.codeberg.org>, 2025.
|
||||
# 0ko <0ko@noreply.codeberg.org>, 2025.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2025-07-03 14:46+0000\n"
|
||||
"PO-Revision-Date: 2025-07-03 10:26+0000\n"
|
||||
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
|
||||
"PO-Revision-Date: 2025-07-23 11:09+0000\n"
|
||||
"Last-Translator: IcewindX <icewindx@noreply.codeberg.org>\n"
|
||||
"Language-Team: Russian <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/ru/>\n"
|
||||
"Language: ru\n"
|
||||
"Language-Team: Russian "
|
||||
"<https://translate.codeberg.org/projects/searxng/searxng/ru/>\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) "
|
||||
"|| (n%100>=11 && n%100<=14)? 2 : 3);\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || ("
|
||||
"n%100>=11 && n%100<=14)? 2 : 3);\n"
|
||||
"X-Generator: Weblate 5.12.2\n"
|
||||
"Generated-By: Babel 2.17.0\n"
|
||||
|
||||
#. CONSTANT_NAMES['NO_SUBGROUPING']
|
||||
@@ -577,7 +580,7 @@ msgstr "Не удалось загрузить следующую страниц
|
||||
|
||||
#: searx/webapp.py:447 searx/webapp.py:845
|
||||
msgid "Invalid settings, please edit your preferences"
|
||||
msgstr "Неправильные параметры, пожалуйста измените ваши настройки"
|
||||
msgstr "Неправильные параметры, пожалуйста, измените ваши настройки"
|
||||
|
||||
#: searx/webapp.py:463
|
||||
msgid "Invalid settings"
|
||||
@@ -711,7 +714,7 @@ msgid ""
|
||||
"format. TinEye only supports images that are JPEG, PNG, GIF, BMP, TIFF or"
|
||||
" WebP."
|
||||
msgstr ""
|
||||
"Не удалось прочитать изображение по ссылки. Возможно это вызвано "
|
||||
"Не удалось прочитать изображение по ссылке. Возможно это вызвано "
|
||||
"неподдерживаемым форматом файла. TinEye поддерживает только следующие "
|
||||
"форматы: JPEG, PNG, GIF, BMP, TIFF or WebP."
|
||||
|
||||
@@ -807,7 +810,7 @@ msgstr "Ваш IP-адрес: "
|
||||
|
||||
#: searx/plugins/self_info.py:55
|
||||
msgid "Your user-agent is: "
|
||||
msgstr "Ваш обозреватель: "
|
||||
msgstr "Ваш браузер: "
|
||||
|
||||
#: searx/plugins/tor_check.py:42
|
||||
msgid "Tor check plugin"
|
||||
@@ -828,7 +831,7 @@ msgstr "Не удалось загрузить список выходных у
|
||||
|
||||
#: searx/plugins/tor_check.py:72
|
||||
msgid "You are using Tor and it looks like you have the external IP address"
|
||||
msgstr "Вы используете Tor и кажется что у вас есть внешний айпи адрес"
|
||||
msgstr "Вы используете Tor и кажется что у вас есть внешний IP-адрес"
|
||||
|
||||
#: searx/plugins/tor_check.py:76
|
||||
msgid "You are not using Tor and you have the external IP address"
|
||||
@@ -939,7 +942,7 @@ msgstr "Создайте задачу на GitHub"
|
||||
|
||||
#: searx/templates/simple/new_issue.html:66
|
||||
msgid "Please check for existing bugs about this engine on GitHub"
|
||||
msgstr "Пожалуйста проверьте ныне существующие ошибки этого движка на GitHub"
|
||||
msgstr "Пожалуйста, проверьте ныне существующие ошибки этого движка на GitHub"
|
||||
|
||||
#: searx/templates/simple/new_issue.html:69
|
||||
msgid "I confirm there is no existing bug about the issue I encounter"
|
||||
@@ -1193,7 +1196,7 @@ msgstr "Сообщения от поисковых систем"
|
||||
|
||||
#: searx/templates/simple/elements/engines_msg.html:7
|
||||
msgid "seconds"
|
||||
msgstr "секунды"
|
||||
msgstr "сек."
|
||||
|
||||
#: searx/templates/simple/elements/search_url.html:3
|
||||
msgid "Search URL"
|
||||
@@ -1250,7 +1253,7 @@ msgstr "Умеренный"
|
||||
#: searx/templates/simple/filters/safesearch.html:4
|
||||
#: searx/templates/simple/preferences/safesearch.html:15
|
||||
msgid "None"
|
||||
msgstr "Нету"
|
||||
msgstr "Нет"
|
||||
|
||||
#: searx/templates/simple/filters/time_range.html:1
|
||||
#: searx/templates/simple/preferences/engines.html:28
|
||||
@@ -1361,13 +1364,13 @@ msgstr "Выравнивание по центру"
|
||||
|
||||
#: searx/templates/simple/preferences/center_alignment.html:14
|
||||
msgid "Display results in the center of the page (Oscar layout)."
|
||||
msgstr "Отображать результаты в центре страницы."
|
||||
msgstr "Отображать результаты по центру страницы."
|
||||
|
||||
#: searx/templates/simple/preferences/cookies.html:2
|
||||
msgid ""
|
||||
"This is the list of cookies and their values SearXNG is storing on your "
|
||||
"computer."
|
||||
msgstr "Список cookies и их значений, которые SearXNG хранит в вашем обозревателе."
|
||||
msgstr "Список cookies и их значений, которые SearXNG хранит в вашем браузере."
|
||||
|
||||
#: searx/templates/simple/preferences/cookies.html:3
|
||||
msgid "With this list, you can assess the transparency of SearXNG."
|
||||
@@ -1395,7 +1398,7 @@ msgstr ""
|
||||
|
||||
#: searx/templates/simple/preferences/cookies.html:35
|
||||
msgid "URL to restore your preferences in another browser"
|
||||
msgstr "URL-адрес для восстановления ваших настроек в другом обозревателе"
|
||||
msgstr "URL-адрес для восстановления ваших настроек в другом браузере"
|
||||
|
||||
#: searx/templates/simple/preferences/cookies.html:43
|
||||
msgid ""
|
||||
@@ -1520,7 +1523,7 @@ msgstr "Прокси для картинок"
|
||||
|
||||
#: searx/templates/simple/preferences/image_proxy.html:14
|
||||
msgid "Proxy image results through SearXNG"
|
||||
msgstr "Результаты прокси-изображения через SearXNG"
|
||||
msgstr "Проксировать найденные изображения через SearXNG"
|
||||
|
||||
#: searx/templates/simple/preferences/infinite_scroll.html:2
|
||||
msgid "Infinite scroll"
|
||||
@@ -1561,8 +1564,8 @@ msgid ""
|
||||
"When enabled, the result page's title contains your query. Your browser "
|
||||
"can record this title"
|
||||
msgstr ""
|
||||
"Добавить поисковый запрос в заголовок страницы с результатами. "
|
||||
"Обозреватель может сохранять этот заголовок"
|
||||
"Добавить поисковый запрос в заголовок страницы с результатами. Ваш браузер "
|
||||
"может сохранять этот заголовок"
|
||||
|
||||
#: searx/templates/simple/preferences/results_on_new_tab.html:2
|
||||
msgid "Results in new tabs"
|
||||
@@ -1570,7 +1573,7 @@ msgstr "Результаты в новых вкладках"
|
||||
|
||||
#: searx/templates/simple/preferences/results_on_new_tab.html:14
|
||||
msgid "Open result links in new browser tabs"
|
||||
msgstr "Открывать результаты с ссылками в новых вкладках обозревателя"
|
||||
msgstr "Открывать результаты с ссылками в новых вкладках браузера"
|
||||
|
||||
#: searx/templates/simple/preferences/safesearch.html:20
|
||||
msgid "Filter content"
|
||||
@@ -1594,7 +1597,7 @@ msgstr "Тема"
|
||||
|
||||
#: searx/templates/simple/preferences/theme.html:14
|
||||
msgid "Change the layout of SearXNG"
|
||||
msgstr "Изменить макет SearXNG"
|
||||
msgstr "Изменить раскладку интерфейса SearXNG"
|
||||
|
||||
#: searx/templates/simple/preferences/theme.html:19
|
||||
msgid "Theme style"
|
||||
@@ -1602,7 +1605,7 @@ msgstr "Стиль темы"
|
||||
|
||||
#: searx/templates/simple/preferences/theme.html:31
|
||||
msgid "Choose auto to follow your browser settings"
|
||||
msgstr "Выберите «автоматически» для использования настроек вашего обозревателя"
|
||||
msgstr "Выберите «автоматически» для использования настроек вашего браузера"
|
||||
|
||||
#: searx/templates/simple/preferences/tokens.html:2
|
||||
msgid "Engine tokens"
|
||||
@@ -2390,4 +2393,3 @@ msgstr "скрыть видео"
|
||||
|
||||
#~ msgid "Change SearXNG layout"
|
||||
#~ msgstr "Изменить расположение элементов SearXNG"
|
||||
|
||||
|
||||
Binary file not shown.
@@ -29,13 +29,14 @@
|
||||
# return42 <return42@noreply.codeberg.org>, 2025.
|
||||
# AhmetHakki1 <ahmethakki1@noreply.codeberg.org>, 2025.
|
||||
# Cookie_Monster <cookie_monster@noreply.codeberg.org>, 2025.
|
||||
# zbbhzdaajc <zbbhzdaajc@noreply.codeberg.org>, 2025.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: searx\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2025-07-03 14:46+0000\n"
|
||||
"PO-Revision-Date: 2025-07-15 05:18+0000\n"
|
||||
"Last-Translator: Cookie_Monster <cookie_monster@noreply.codeberg.org>\n"
|
||||
"PO-Revision-Date: 2025-07-19 08:08+0000\n"
|
||||
"Last-Translator: zbbhzdaajc <zbbhzdaajc@noreply.codeberg.org>\n"
|
||||
"Language-Team: Turkish <https://translate.codeberg.org/projects/searxng/"
|
||||
"searxng/tr/>\n"
|
||||
"Language: tr\n"
|
||||
@@ -477,7 +478,7 @@ msgstr ""
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
msgid "Snow"
|
||||
msgstr ""
|
||||
msgstr "Kar"
|
||||
|
||||
#. WEATHER_CONDITIONS
|
||||
#: searx/searxng.msg
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
# pylint: disable=,missing-module-docstring,missing-class-docstring
|
||||
|
||||
import importlib
|
||||
import logging
|
||||
import os
|
||||
import shlex
|
||||
import subprocess
|
||||
import logging
|
||||
import importlib
|
||||
|
||||
# fallback values
|
||||
# if there is searx.version_frozen module, and it is not possible to get the git tag
|
||||
VERSION_STRING = "1.0.0"
|
||||
VERSION_TAG = "1.0.0"
|
||||
GIT_URL = "unknow"
|
||||
GIT_BRANCH = "unknow"
|
||||
DOCKER_TAG = "1.0.0"
|
||||
GIT_URL = "unknown"
|
||||
GIT_BRANCH = "unknown"
|
||||
|
||||
logger = logging.getLogger("searx")
|
||||
|
||||
@@ -69,6 +70,7 @@ def get_git_version():
|
||||
# which depended on the git version: '2023.05.06+..' --> '2023.5.6+..'
|
||||
git_commit_date_hash = git_commit_date_hash.replace('.0', '.')
|
||||
tag_version = git_version = git_commit_date_hash
|
||||
docker_tag = git_commit_date_hash.replace("+", "-")
|
||||
|
||||
# add "+dirty" suffix if there are uncommitted changes except searx/settings.yml
|
||||
try:
|
||||
@@ -78,10 +80,29 @@ def get_git_version():
|
||||
git_version += "+dirty"
|
||||
else:
|
||||
logger.warning('"%s" returns an unexpected return code %i', e.returncode, e.cmd)
|
||||
docker_tag = git_version.replace("+", "-")
|
||||
|
||||
return git_version, tag_version, docker_tag
|
||||
|
||||
|
||||
def get_information():
|
||||
version_string = VERSION_STRING
|
||||
version_tag = VERSION_TAG
|
||||
docker_tag = DOCKER_TAG
|
||||
git_url = GIT_URL
|
||||
git_branch = GIT_BRANCH
|
||||
|
||||
try:
|
||||
version_string, version_tag, docker_tag = get_git_version()
|
||||
except subprocess.CalledProcessError as ex:
|
||||
logger.error("Error while getting the version: %s", ex.stderr)
|
||||
try:
|
||||
git_url, git_branch = get_git_url_and_branch()
|
||||
except subprocess.CalledProcessError as ex:
|
||||
logger.error("Error while getting the git URL & branch: %s", ex.stderr)
|
||||
|
||||
return version_string, version_tag, docker_tag, git_url, git_branch
|
||||
|
||||
|
||||
try:
|
||||
vf = importlib.import_module('searx.version_frozen')
|
||||
VERSION_STRING, VERSION_TAG, DOCKER_TAG, GIT_URL, GIT_BRANCH = (
|
||||
@@ -92,18 +113,7 @@ try:
|
||||
vf.GIT_BRANCH,
|
||||
)
|
||||
except ImportError:
|
||||
try:
|
||||
try:
|
||||
VERSION_STRING, VERSION_TAG, DOCKER_TAG = get_git_version()
|
||||
except subprocess.CalledProcessError as ex:
|
||||
logger.error("Error while getting the version: %s", ex.stderr)
|
||||
try:
|
||||
GIT_URL, GIT_BRANCH = get_git_url_and_branch()
|
||||
except subprocess.CalledProcessError as ex:
|
||||
logger.error("Error while getting the git URL & branch: %s", ex.stderr)
|
||||
except FileNotFoundError as ex:
|
||||
logger.error("%s is not found, fallback to the default version", ex.filename)
|
||||
|
||||
VERSION_STRING, VERSION_TAG, DOCKER_TAG, GIT_URL, GIT_BRANCH = get_information()
|
||||
|
||||
logger.info("version: %s", VERSION_STRING)
|
||||
|
||||
@@ -111,6 +121,8 @@ if __name__ == "__main__":
|
||||
import sys
|
||||
|
||||
if len(sys.argv) >= 2 and sys.argv[1] == "freeze":
|
||||
VERSION_STRING, VERSION_TAG, DOCKER_TAG, GIT_URL, GIT_BRANCH = get_information()
|
||||
|
||||
# freeze the version (to create an archive outside a git repository)
|
||||
python_code = f"""# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
# pylint: disable=missing-module-docstring
|
||||
|
||||
@@ -30,6 +30,9 @@ from pygments.formatters import HtmlFormatter # pylint: disable=no-name-in-modu
|
||||
|
||||
from werkzeug.serving import is_running_from_reloader
|
||||
|
||||
from whitenoise import WhiteNoise
|
||||
from whitenoise.base import Headers
|
||||
|
||||
import flask
|
||||
|
||||
from flask import (
|
||||
@@ -147,7 +150,7 @@ STATS_SORT_PARAMETERS = {
|
||||
}
|
||||
|
||||
# Flask app
|
||||
app = Flask(__name__, static_folder=settings['ui']['static_path'], template_folder=templates_path)
|
||||
app = Flask(__name__, static_folder=None, template_folder=templates_path)
|
||||
|
||||
app.jinja_env.trim_blocks = True
|
||||
app.jinja_env.lstrip_blocks = True
|
||||
@@ -245,6 +248,7 @@ def custom_url_for(endpoint: str, **values):
|
||||
if not _STATIC_FILES:
|
||||
_STATIC_FILES = webutils.get_static_file_list()
|
||||
|
||||
# handled by WhiteNoise
|
||||
if endpoint == "static" and values.get("filename"):
|
||||
|
||||
# We need to verify the "filename" argument: in the jinja templates
|
||||
@@ -257,9 +261,11 @@ def custom_url_for(endpoint: str, **values):
|
||||
if arg_filename not in _STATIC_FILES:
|
||||
# try file in the current theme
|
||||
theme_name = sxng_request.preferences.get_value("theme")
|
||||
arg_filename = f"themes/{theme_name}/{arg_filename}"
|
||||
if arg_filename in _STATIC_FILES:
|
||||
values["filename"] = arg_filename
|
||||
theme_filename = f"themes/{theme_name}/{arg_filename}"
|
||||
if theme_filename in _STATIC_FILES:
|
||||
values["filename"] = theme_filename
|
||||
|
||||
return f"static/{values['filename']}"
|
||||
|
||||
if endpoint == "info" and "locale" not in values:
|
||||
|
||||
@@ -1424,8 +1430,27 @@ def init():
|
||||
favicons.init()
|
||||
|
||||
|
||||
application = app
|
||||
def static_headers(headers: Headers, _path: str, _url: str) -> None:
|
||||
headers['Cache-Control'] = 'public, max-age=30, stale-while-revalidate=60'
|
||||
|
||||
for header, value in settings['server']['default_http_headers'].items():
|
||||
headers[header] = value
|
||||
|
||||
|
||||
app.wsgi_app = WhiteNoise(
|
||||
app.wsgi_app,
|
||||
root=settings['ui']['static_path'],
|
||||
prefix="static",
|
||||
max_age=None,
|
||||
allow_all_origins=False,
|
||||
add_headers_function=static_headers,
|
||||
)
|
||||
|
||||
patch_application(app)
|
||||
|
||||
# remove when we drop support for uwsgi
|
||||
application = app
|
||||
|
||||
init()
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
@@ -8,10 +8,10 @@ from :py:obj:`BANGS_URL`.
|
||||
"""
|
||||
|
||||
import json
|
||||
import httpx
|
||||
|
||||
from searx.external_bang import LEAF_KEY
|
||||
from searx.data import data_dir
|
||||
from searx.network import get as http_get
|
||||
|
||||
DATA_FILE = data_dir / 'external_bangs.json'
|
||||
|
||||
@@ -24,7 +24,7 @@ HTTP_COLON = 'http:'
|
||||
|
||||
def main():
|
||||
print(f'fetch bangs from {BANGS_URL}')
|
||||
response = httpx.get(BANGS_URL)
|
||||
response = http_get(BANGS_URL)
|
||||
response.raise_for_status()
|
||||
ddg_bangs = json.loads(response.content.decode())
|
||||
trie = parse_ddg_bangs(ddg_bangs)
|
||||
|
||||
@@ -75,7 +75,4 @@ pythonpath = ${SEARXNG_SRC}
|
||||
http = ${SEARXNG_INTERNAL_HTTP}
|
||||
buffer-size = 8192
|
||||
|
||||
# To serve the static files via the WSGI server
|
||||
static-map = /static=${SEARXNG_STATIC}
|
||||
static-gzip-all = True
|
||||
offload-threads = %k
|
||||
|
||||
@@ -72,7 +72,4 @@ pythonpath = ${SEARXNG_SRC}
|
||||
socket = ${SEARXNG_UWSGI_SOCKET}
|
||||
buffer-size = 8192
|
||||
|
||||
# To serve the static files via the WSGI server
|
||||
static-map = /static=${SEARXNG_STATIC}
|
||||
static-gzip-all = True
|
||||
offload-threads = %k
|
||||
|
||||
@@ -78,7 +78,4 @@ pythonpath = ${SEARXNG_SRC}
|
||||
http = ${SEARXNG_INTERNAL_HTTP}
|
||||
buffer-size = 8192
|
||||
|
||||
# To serve the static files via the WSGI server
|
||||
static-map = /static=${SEARXNG_STATIC}
|
||||
static-gzip-all = True
|
||||
offload-threads = %k
|
||||
|
||||
@@ -75,7 +75,4 @@ pythonpath = ${SEARXNG_SRC}
|
||||
socket = ${SEARXNG_UWSGI_SOCKET}
|
||||
buffer-size = 8192
|
||||
|
||||
# To serve the static files via the WSGI server
|
||||
static-map = /static=${SEARXNG_STATIC}
|
||||
static-gzip-all = True
|
||||
offload-threads = %k
|
||||
|
||||
Reference in New Issue
Block a user