diff options
| -rw-r--r-- | .dir-locals.el | 13 | ||||
| -rw-r--r-- | .gitignore | 5 | ||||
| -rw-r--r-- | .nvm_packages | 8 | ||||
| -rw-r--r-- | Makefile | 6 | ||||
| -rw-r--r-- | README.rst | 2 | ||||
| -rw-r--r-- | SECURITY.md | 10 | ||||
| -rwxr-xr-x | manage | 23 | ||||
| -rw-r--r-- | package.json | 6 | ||||
| -rw-r--r-- | pyrightconfig-ci.json | 10 | ||||
| -rw-r--r-- | pyrightconfig.json | 9 | ||||
| -rw-r--r-- | requirements.txt | 1 | ||||
| -rw-r--r-- | searx/autocomplete.py | 52 | ||||
| -rw-r--r-- | searx/help/about.md | 71 | ||||
| -rw-r--r-- | searx/search/checker/impl.py | 3 | ||||
| -rw-r--r-- | searx/settings.yml | 11 | ||||
| -rw-r--r-- | searx/static/themes/oscar/css/logicodev-dark.min.css.map | 2 | ||||
| -rw-r--r-- | searx/static/themes/oscar/js/searxng.min.js | 2 | ||||
| -rw-r--r-- | searx/static/themes/oscar/js/searxng.min.js.map | 2 | ||||
| -rw-r--r-- | searx/static/themes/simple/gruntfile.js | 2 | ||||
| -rw-r--r-- | searx/templates/__common__/about.html | 102 | ||||
| -rw-r--r-- | searx/templates/oscar/about.html | 3 | ||||
| -rw-r--r-- | searx/templates/simple/about.html | 3 | ||||
| -rw-r--r-- | searx/templates/simple/icons.html | 2 | ||||
| -rw-r--r-- | searx/templates/simple/macros.html | 2 | ||||
| -rw-r--r-- | searx/user_help.py | 48 | ||||
| -rwxr-xr-x | searx/webapp.py | 11 | ||||
| -rwxr-xr-x | utils/lib_nvm.sh | 12 |
27 files changed, 266 insertions, 155 deletions
diff --git a/.dir-locals.el b/.dir-locals.el index 43d6fa551..13145010c 100644 --- a/.dir-locals.el +++ b/.dir-locals.el @@ -32,6 +32,10 @@ ;; Jedi, flycheck & other python stuff should use the 'python-shell-interpreter' ;; from the local py3 environment. ;; +;; For pyright support you need to install:: +;; +;; M-x package-install lsp-pyright +;; ;; Other useful jedi stuff you might add to your ~/.emacs:: ;; ;; (global-set-key [f6] 'flycheck-mode) @@ -99,12 +103,19 @@ ;; use nodejs from the (local) NVM environment (see nvm-dir) (nvm-use-for-buffer) (setq-local js-indent-level 2) + ;; flycheck should use the eslint checker from developer tools + (setq-local flycheck-javascript-eslint-executable + (expand-file-name "node_modules/.bin/eslint" prj-root)) + (flycheck-mode) )))) (python-mode . ((eval . (progn - + ;; use nodejs from the (local) NVM environment (see nvm-dir) + (nvm-use-for-buffer) + (if (featurep 'lsp-pyright) + (lsp)) (setq-local python-environment-virtualenv (list (expand-file-name "bin/virtualenv" python-shell-virtualenv-root) ;;"--system-site-packages" diff --git a/.gitignore b/.gitignore index efea6c872..9b3eff158 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -# to sync with .dockerignore +# to sync with .dockerignore & pyrightconfig.json *.pyc */*.pyc @@ -16,3 +16,6 @@ dist/ local/ gh-pages/ *.egg-info/ + +/package-lock.json +/node_modules/ diff --git a/.nvm_packages b/.nvm_packages deleted file mode 100644 index 13eabc5c2..000000000 --- a/.nvm_packages +++ /dev/null @@ -1,8 +0,0 @@ -# -*- coding: utf-8; mode: conf-unix -*- -# -# Developement tools pre-installed in NVM's node installation [1] -# -# [1] https://github.com/nvm-sh/nvm#default-global-packages-from-file-while-installing - -eslint - @@ -50,8 +50,8 @@ search.checker.%: install $(Q)./manage pyenv.cmd searx-checker -v "$(subst _, ,$(patsubst search.checker.%,%,$@))" PHONY += test ci.test test.shell -ci.test: test.yamllint test.black test.pylint test.unit test.robot test.rst -test: test.yamllint test.black test.pylint test.unit test.robot test.rst test.shell +ci.test: test.yamllint test.black test.pyright test.pylint test.unit test.robot test.rst +test: test.yamllint test.black test.pyright test.pylint test.unit test.robot test.rst test.shell test.shell: $(Q)shellcheck -x -s dash \ dockerfiles/docker-entrypoint.sh @@ -86,7 +86,7 @@ MANAGE += py.build py.clean MANAGE += pyenv pyenv.install pyenv.uninstall MANAGE += pypi.upload pypi.upload.test MANAGE += format.python -MANAGE += test.yamllint test.pylint test.black test.unit test.coverage test.robot test.rst test.clean +MANAGE += test.yamllint test.pylint test.pyright test.black test.unit test.coverage test.robot test.rst test.clean MANAGE += themes.all themes.oscar themes.simple themes.simple.test pygments.less MANAGE += static.build.commit static.build.drop static.build.restore MANAGE += nvm.install nvm.clean nvm.status nvm.nodejs diff --git a/README.rst b/README.rst index 38a50a62f..e512ff5c2 100644 --- a/README.rst +++ b/README.rst @@ -29,7 +29,7 @@ our homepage_. .. _searx.space: https://searx.space .. _user: https://docs.searxng.org/user -.. _admin: https://docs.searxng.org/user/admin +.. _admin: https://docs.searxng.org/admin .. _developer: https://docs.searxng.org/dev .. _homepage: https://docs.searxng.org/ .. _metasearch engine: https://en.wikipedia.org/wiki/Metasearch_engine diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 000000000..959e7077d --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,10 @@ +# Security Policy + +We love responsible reports of (potential) security issues in SearXNG. + +You can contact us at security@searxng.org. + +Be sure to provide as much information as possible and if found +also reproduction steps of the identified vulnerability. Also +add the specific URL of the project as well as code you found +the issue in to your report. @@ -20,6 +20,8 @@ source "$(dirname "${BASH_SOURCE[0]}")/utils/lib_go.sh" # shellcheck source=utils/lib_redis.sh source "$(dirname "${BASH_SOURCE[0]}")/utils/lib_redis.sh" +PATH="${REPO_ROOT}/node_modules/.bin:${PATH}" + # config PYOBJECTS="searx" @@ -103,6 +105,7 @@ format.: test.: yamllint : lint YAML files (YAMLLINT_FILES) pylint : lint PYLINT_FILES, searx/engines, searx & tests + pyright : static type check of python sources black : check black code format unit : run unit tests coverage : run unit tests with coverage @@ -558,6 +561,12 @@ node.env() { dump_return $? } +node.env.devtools() { + nodejs.ensure + build_msg INSTALL "package.json: developer and CI tools" + npm install +} + node.clean() { if ! required_commands npm 2>/dev/null; then build_msg CLEAN "npm is not installed / ignore npm dependencies" @@ -682,6 +691,20 @@ test.pylint() { dump_return $? } +test.pyright() { + build_msg TEST "[pyright] static type check of python sources" + node.env.devtools + # We run Pyright in the virtual environment because Pyright + # executes "python" to determine the Python version. + build_msg TEST "[pyright] suppress warnings related to intentional monkey patching" + pyenv.cmd npx --no-install pyright -p pyrightconfig-ci.json \ + | grep -v ".py$" \ + | grep -v '/engines/.*.py.* - warning: "logger" is not defined'\ + | grep -v '/engines/.*.py.* - warning: "supported_languages" is not defined' \ + | grep -v '/engines/.*.py.* - warning: "language_aliases" is not defined' + dump_return $? +} + test.black() { build_msg TEST "[black] \$BLACK_TARGETS" pyenv.cmd black --check --diff "${BLACK_OPTIONS[@]}" "${BLACK_TARGETS[@]}" diff --git a/package.json b/package.json new file mode 100644 index 000000000..e65e0585d --- /dev/null +++ b/package.json @@ -0,0 +1,6 @@ +{ + "dependencies": { + "eslint": "^8.7.0", + "pyright": "^1.1.212" + } +} diff --git a/pyrightconfig-ci.json b/pyrightconfig-ci.json new file mode 100644 index 000000000..9082b0790 --- /dev/null +++ b/pyrightconfig-ci.json @@ -0,0 +1,10 @@ +{ + "venvPath": "local", + "venv": "py3", + "include": [ + "searx", + "searxng_extra", + "tests" + ], + "typeCheckingMode": "off" +} diff --git a/pyrightconfig.json b/pyrightconfig.json new file mode 100644 index 000000000..56573c75f --- /dev/null +++ b/pyrightconfig.json @@ -0,0 +1,9 @@ +{ + "venvPath": "local", + "venv": "py3", + "include": [ + "searx", + "searxng_extra", + "tests" + ] +} diff --git a/requirements.txt b/requirements.txt index e9fd942d1..95b85578e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,3 +14,4 @@ httpx-socks[asyncio]==0.7.2 langdetect==1.0.9 setproctitle==1.2.2 redis==4.1.1 +mistletoe==0.8.1 diff --git a/searx/autocomplete.py b/searx/autocomplete.py index b8d272c32..8a67f8139 100644 --- a/searx/autocomplete.py +++ b/searx/autocomplete.py @@ -1,33 +1,23 @@ -''' -searx is free software: you can redistribute it and/or modify -it under the terms of the GNU Affero General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. +# SPDX-License-Identifier: AGPL-3.0-or-later +# lint: pylint +"""This module implements functions needed for the autocompleter. -searx is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Affero General Public License for more details. +""" -You should have received a copy of the GNU Affero General Public License -along with searx. If not, see < http://www.gnu.org/licenses/ >. - -(C) 2013- by Adam Tauber, <asciimoo@gmail.com> -''' - - -from lxml import etree from json import loads from urllib.parse import urlencode +from lxml import etree from httpx import HTTPError - from searx import settings from searx.data import ENGINES_LANGUAGES from searx.network import get as http_get from searx.exceptions import SearxEngineResponseException +# a fetch_supported_languages() for XPath engines isn't available right now +# _brave = ENGINES_LANGUAGES['brave'].keys() + def get(*args, **kwargs): if 'timeout' not in kwargs: @@ -36,7 +26,26 @@ def get(*args, **kwargs): return http_get(*args, **kwargs) -def dbpedia(query, lang): +def brave(query, _lang): + # brave search autocompleter + url = 'https://search.brave.com/api/suggest?' + url += urlencode({'q': query}) + country = 'all' + # if lang in _brave: + # country = lang + kwargs = {'cookies': {'country': country}} + resp = get(url, **kwargs) + + results = [] + + if resp.ok: + data = resp.json() + for item in data[1]: + results.append(item) + return results + + +def dbpedia(query, _lang): # dbpedia autocompleter, no HTTPS autocomplete_url = 'https://lookup.dbpedia.org/api/search.asmx/KeywordSearch?' @@ -51,7 +60,7 @@ def dbpedia(query, lang): return results -def duckduckgo(query, lang): +def duckduckgo(query, _lang): # duckduckgo autocompleter url = 'https://ac.duckduckgo.com/ac/?{0}&type=list' @@ -85,7 +94,7 @@ def startpage(query, lang): return [e['text'] for e in data.get('suggestions', []) if 'text' in e] -def swisscows(query, lang): +def swisscows(query, _lang): # swisscows autocompleter url = 'https://swisscows.ch/api/suggest?{query}&itemsCount=5' @@ -128,6 +137,7 @@ backends = { 'swisscows': swisscows, 'qwant': qwant, 'wikipedia': wikipedia, + 'brave': brave, } diff --git a/searx/help/about.md b/searx/help/about.md new file mode 100644 index 000000000..521022414 --- /dev/null +++ b/searx/help/about.md @@ -0,0 +1,71 @@ +# About [searxng][url_for:index] + +SearXNG is a fork from the well-known [searx] [metasearch engine], aggregating +the results of other [search engines][url_for:preferences] while not storing +information about its users. + +More about SearXNG ... + +* [SearXNG sources][brand.git_url] +* [weblate] + +--- + +## Why use it? + +* SearXNG may not offer you as personalised results as Google, + but it doesn't generate a profile about you. + +* SearXNG doesn't care about what you search for, never shares anything + with a third party, and it can't be used to compromise you. + +* SearXNG is free software, the code is 100% open and you can help + to make it better. See more on [SearXNG sources][brand.git_url]. + +If you do care about privacy, want to be a conscious user, or otherwise +believe in digital freedom, make SearXNG your default search engine or run +it on your own server + +## Technical details - How does it work? + +SearXNG is a [metasearch engine], inspired by the [seeks project]. It provides +basic privacy by mixing your queries with searches on other platforms without +storing search data. Queries are made using a POST request on every browser +(except Chromium-based browsers*). Therefore they show up in neither our logs, +nor your url history. In the case of Chromium-based browser users there is an +exception: searx uses the search bar to perform GET requests. SearXNG can be +added to your browser's search bar; moreover, it can be set as the default +search engine. + +<span id='add to browser'></span> +## How to set as the default search engine? + +SearXNG supports [OpenSearch]. For more information on changing your default +search engine, see your browser's documentation: + +* [Firefox](https://support.mozilla.org/en-US/kb/add-or-remove-search-engine-firefox) +* [Microsoft Edge](https://support.microsoft.com/en-us/help/4028574/microsoft-edge-change-the-default-search-engine) +* Chromium-based browsers [only add websites that the user navigates to without a path.](https://www.chromium.org/tab-to-search) + +## Where to find anonymous usage statistics of this instance ? + +[Stats page][url_for:stats] contains some useful data about the engines used. + +## How can I make it my own? + +SearXNG appreciates your concern regarding logs, so take the code from +the [SearXNG project][brand.git_url] and run it yourself! + +Add your instance to this [list of public instances][brand.public_instances] to +help other people reclaim their privacy and make the Internet freer! The more +decentralized the Internet is, the more freedom we have! + +## Where are the docs & code of this instance? + +See the [SearXNG docs][brand.docs_url] and [SearXNG sources][brand.git_url] + +[searx]: https://github.com/searx/searx +[metasearch engine]: https://en.wikipedia.org/wiki/Metasearch_engine +[weblate]: https://weblate.bubu1.eu/projects/searxng/ +[seeks project]: https://beniz.github.io/seeks/ +[OpenSearch]: https://github.com/dewitt/opensearch/blob/master/opensearch-1-1-draft-6.md diff --git a/searx/search/checker/impl.py b/searx/search/checker/impl.py index c0dd966d0..bc5cdf968 100644 --- a/searx/search/checker/impl.py +++ b/searx/search/checker/impl.py @@ -74,7 +74,7 @@ def _download_and_check_if_image(image_url: str) -> bool: try: # use "image_proxy" (avoid HTTP/2) network.set_context_network_name('image_proxy') - stream = network.stream( + r, stream = network.stream( 'GET', image_url, timeout=10.0, @@ -91,7 +91,6 @@ def _download_and_check_if_image(image_url: str) -> bool: 'Cache-Control': 'max-age=0', }, ) - r = next(stream) r.close() if r.status_code == 200: is_image = r.headers.get('content-type', '').startswith('image/') diff --git a/searx/settings.yml b/searx/settings.yml index 0ea69007a..ad38d543d 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -777,11 +777,16 @@ engines: - name: invidious engine: invidious + # Instanes will be selected randomly, see https://api.invidious.io/ for + # instances that are stable (good uptime) and close to you. base_url: - - https://invidious.tube/ - https://invidious.snopyta.org/ + - https://vid.puffyan.us/ + - https://invidious.kavin.rocks/ + - https://invidio.xamh.de/ + - https://inv.riverside.rocks/ shortcut: iv - timeout: 5.0 + timeout: 3.0 disabled: true - name: kickass @@ -1455,7 +1460,7 @@ engines: # Or you can use the html non-stable engine, activated by default engine: wolframalpha_noapi timeout: 6.0 - categories: science + categories: [] - name: dictzone engine: dictzone diff --git a/searx/static/themes/oscar/css/logicodev-dark.min.css.map b/searx/static/themes/oscar/css/logicodev-dark.min.css.map index e79efa43f..32293f3a4 100644 --- a/searx/static/themes/oscar/css/logicodev-dark.min.css.map +++ b/searx/static/themes/oscar/css/logicodev-dark.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["../../__common__/less/new_issue.less","../../__common__/less/stats.less","../src/less/logicodev/checkbox.less","../../__common__/less/result_templates.less","../src/less/result_templates.less","../src/less/preferences.less","../src/generated/pygments-logicodev.less","../src/less/logicodev/footer.less","../src/less/logicodev/onoff.less","../src/less/logicodev/results.less","../src/less/logicodev/infobox.less","../src/less/logicodev/search.less","../src/less/logicodev/advanced.less","../src/less/logicodev/cursor.less","../src/less/logicodev/code.less","../src/less/logicodev/preferences.less","../src/less/safari.css","../src/less/logicodev-dark/oscar.less"],"names":[],"mappings":"AAAA,qBACI,QAAA,MACA,QAAA,IAAA,KACA,YAAA,WACA,UAAA,KACA,MAAA,KACA,iBAAA,kBACA,OAAA,QACA,cAAA,eACA,WAAA,YAAA,EAAA,EAAA,EAAA,EAGgB,2BAChB,iBAAA,QAGJ,YACI,QAAA,KCfA,2BACI,MAAA,MAGJ,4BACI,MAAA,KACA,WAAA,MASJ,kCACI,WAAA,MAGC,iCACD,UAAA,OACA,OAAA,KACA,OAAA,IAAA,MAAA,KAKJ,0BADqB,sDADA,sDAGjB,MAAA,MAGmB,qDAEnB,aAAA,IAAA,MAAA,KACA,QAAA,EAAA,KAAA,EAAA,EACA,OAAA,EAAA,EAAA,EAAA,MAIR,iBACI,MAAA,IACA,QAAA,aACA,WAAA,MACA,cAAA,MAGJ,iBACI,MAAO,kBACP,QAAA,aAGJ,eACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,MACI,MAAA,EACA,OAAA,ECxEH,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,QD+EO,MAAA,KE/ER,aACI,OAAA,MACA,MAAA,KACA,OAAA,KAAA,ECHJ,qBACI,MAAA,KACA,WAAA,KACA,WAAA,KCHJ,UACI,MAAA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"}
\ No newline at end of file +{"version":3,"sources":["../../__common__/less/new_issue.less","../../__common__/less/stats.less","../src/less/logicodev/preferences.less","../../__common__/less/result_templates.less","../src/less/result_templates.less","../src/less/preferences.less","../src/generated/pygments-logicodev.less","../src/less/logicodev/footer.less","../src/less/logicodev/checkbox.less","../src/less/logicodev/onoff.less","../src/less/logicodev/results.less","../src/less/logicodev/infobox.less","../src/less/logicodev/search.less","../src/less/logicodev/advanced.less","../src/less/logicodev/cursor.less","../src/less/logicodev/code.less","../src/less/safari.css","../src/less/logicodev-dark/oscar.less"],"names":[],"mappings":"AAAA,qBACI,QAAA,MACA,QAAA,IAAA,KACA,YAAA,WACA,UAAA,KACA,MAAA,KACA,iBAAA,kBACA,OAAA,QACA,cAAA,eACA,WAAA,YAAA,EAAA,EAAA,EAAA,EAGgB,2BAChB,iBAAA,QAGJ,YACI,QAAA,KCfA,2BACI,MAAA,MAGJ,4BACI,MAAA,KACA,WAAA,MASJ,kCACI,WAAA,MAGC,iCACD,UAAA,OACA,OAAA,KACA,OAAA,IAAA,MAAA,KAKJ,0BADqB,sDADA,sDAGjB,MAAA,MAGmB,qDAEnB,aAAA,IAAA,MAAA,KACA,QAAA,EAAA,KAAA,EAAA,EACA,OAAA,EAAA,EAAA,EAAA,MAIR,iBACI,MAAA,IACA,QAAA,aACA,WAAA,MACA,cAAA,MAGJ,iBACI,MAAO,kBACP,QAAA,aAGJ,eACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,MACI,MAAA,EACA,OAAA,ECxEH,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,QD+EO,MAAA,KE/ER,aACI,OAAA,MACA,MAAA,KACA,OAAA,KAAA,ECHJ,qBACI,MAAA,KACA,WAAA,KACA,WAAA,KCHJ,UACI,MAAA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"}
\ No newline at end of file diff --git a/searx/static/themes/oscar/js/searxng.min.js b/searx/static/themes/oscar/js/searxng.min.js index 9da3a8b75..c835d8129 100644 --- a/searx/static/themes/oscar/js/searxng.min.js +++ b/searx/static/themes/oscar/js/searxng.min.js @@ -4,7 +4,7 @@ * (C) Copyright Contributors to the searx project (2014 - 2021). * SPDX-License-Identifier: AGPL-3.0-or-later */ -window.searxng=function(t){"use strict";t.getElementsByTagName("html")[0].className="js";var e,e=t.currentScript||(e=t.getElementsByTagName("script"))[e.length-1];return{autocompleter:"true"===e.getAttribute("data-autocompleter"),method:e.getAttribute("data-method"),translations:JSON.parse(e.getAttribute("data-translations"))}}(document), +window.searxng=function(t){"use strict";t.getElementsByTagName("html")[0].className="js";var e=t.currentScript||(e=t.getElementsByTagName("script"))[e.length-1];return{autocompleter:"true"===e.getAttribute("data-autocompleter"),method:e.getAttribute("data-method"),translations:JSON.parse(e.getAttribute("data-translations"))}}(document), /** * @license * (C) Copyright Contributors to the SearXNG project. diff --git a/searx/static/themes/oscar/js/searxng.min.js.map b/searx/static/themes/oscar/js/searxng.min.js.map index 1a95d2e2a..66ba6aa2b 100644 --- a/searx/static/themes/oscar/js/searxng.min.js.map +++ b/searx/static/themes/oscar/js/searxng.min.js.map @@ -1 +1 @@ -{"version":3,"file":"searxng.min.js","sources":["searxng.js"],"names":["window","searxng","d","getElementsByTagName","className","scripts","script","currentScript","length","autocompleter","getAttribute","method","translations","JSON","parse","document","$","ready","searchResults","original_search_value","Bloodhound","datumTokenizer","tokenizers","obj","whitespace","queryTokenizer","remote","url","wildcard","initialize","on","e","which","val","typeahead","name","highlight","hint","displayKey","result","classNames","input","menu","dataset","source","bind","ev","suggestion","submit","focus","click","getElementById","value","this","select","btnTextCollapsed","data","btnTextNotCollapsed","new_html","hasClass","html","replace","btnClass","btnLabelDefault","btnLabelToggled","toggleClass","target","iframe_load","srctest","attr","undefined","dblclick","prop","addClass","removeClass","removeAttr","checked","a","parents","children","parent","image_thumbnail_layout","ImageLayout","watch","addEventListener","each","infobox_body","find","height","css","hide","event","leaflet_target","map_lon","map_lat","map_zoom","map_boundingbox","map_geojson","southWest","L","latLng","northEast","map_bounds","latLngBounds","Icon","Default","imagePath","map","osmMapnik","TileLayer","minZoom","maxZoom","attribution","setTimeout","fitBounds","setView","LatLng","addLayer","control","layers","OSM Mapnik","addTo","geoJson","off","let","engine_descriptions","querySelector","hover","ajax","dataType","done","engine_name","description","Object","entries","element","Source","innerHTML","w","container_selector","results_selector","img_selector","verticalMargin","horizontalMargin","maxHeight","isAlignDone","prototype","_getHeigth","images","width","img","r","i","naturalWidth","naturalHeight","_setSize","imgWidth","resultNode","imagesLength","style","marginLeft","marginTop","marginRight","marginBottom","parentNode","classList","contains","add","_alignImgs","imgGroup","isSearching","slice","h","containerElement","containerCompStyles","getComputedStyle","containerPaddingLeft","parseInt","getPropertyValue","containerPaddingRight","containerWidth","clientWidth","Math","min","align","results_selectorNode","querySelectorAll","results_length","previous","current","previousElementSibling","push","results_nodes","img_load_error","originalTarget","src","static_path","theme","throttleAlign","once"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"searxng.min.js","sources":["searxng.js"],"names":["window","searxng","d","getElementsByTagName","className","script","currentScript","scripts","length","autocompleter","getAttribute","method","translations","JSON","parse","document","$","ready","searchResults","original_search_value","Bloodhound","datumTokenizer","tokenizers","obj","whitespace","queryTokenizer","remote","url","wildcard","initialize","on","e","which","val","typeahead","name","highlight","hint","displayKey","result","classNames","input","menu","dataset","source","bind","ev","suggestion","submit","focus","click","getElementById","value","this","select","btnTextCollapsed","data","btnTextNotCollapsed","new_html","hasClass","html","replace","btnClass","btnLabelDefault","btnLabelToggled","toggleClass","target","iframe_load","srctest","attr","undefined","dblclick","prop","addClass","removeClass","removeAttr","checked","a","parents","children","parent","image_thumbnail_layout","ImageLayout","watch","addEventListener","each","infobox_body","find","height","css","hide","event","leaflet_target","map_lon","map_lat","map_zoom","map_boundingbox","map_geojson","southWest","L","latLng","northEast","map_bounds","latLngBounds","Icon","Default","imagePath","map","osmMapnik","TileLayer","minZoom","maxZoom","attribution","setTimeout","fitBounds","setView","LatLng","addLayer","control","layers","OSM Mapnik","addTo","geoJson","off","let","engine_descriptions","querySelector","hover","ajax","dataType","done","engine_name","description","Object","entries","element","Source","innerHTML","w","container_selector","results_selector","img_selector","verticalMargin","horizontalMargin","maxHeight","isAlignDone","prototype","_getHeigth","images","width","img","r","i","naturalWidth","naturalHeight","_setSize","imgWidth","resultNode","imagesLength","style","marginLeft","marginTop","marginRight","marginBottom","parentNode","classList","contains","add","_alignImgs","imgGroup","isSearching","slice","h","containerElement","containerCompStyles","getComputedStyle","containerPaddingLeft","parseInt","getPropertyValue","containerPaddingRight","containerWidth","clientWidth","Math","min","align","results_selectorNode","querySelectorAll","results_length","previous","current","previousElementSibling","push","results_nodes","img_load_error","originalTarget","src","static_path","theme","throttleAlign","once"],"mappings":";;;;;GAOAA;OAAOC,QAAU,SAAUC,gBAIvBA,EAAEC,qBAAqB,QAAQ,GAAGC,UAAY,KAG9C,IAAIC,EAASH,EAAEI,gBACPC,EAAUL,EAAEC,qBAAqB,WACtBI,EAAQC,OAAS,GAGpC,MAAO,CACHC,cAA6D,SAA9CJ,EAAOK,aAAa,sBACnCC,OAAQN,EAAOK,aAAa,eAC5BE,aAAcC,KAAKC,MAAMT,EAAOK,aAAa,uBAfpC,CAiBdK;;;;;;;GASHC;EAAED,UAAUE,MAAM,WACd,IAEQC,EAFJC,EAAwB,GACzBlB,QAAQQ,iBACHS,EAAgB,IAAIE,WAAW,CAC/BC,eAAgBD,WAAWE,WAAWC,IAAIC,WAAW,SACrDC,eAAgBL,WAAWE,WAAWE,WACtCE,OAAQ,CACJC,IAAK,2BACLC,SAAU,aAGJC,aAEdb,EAAE,MAAMc,GAAG,UAAW,SAASC,GACtB,IAAXA,EAAEC,QACQb,EAAwBH,EAAE,MAAMiB,SAGxCjB,EAAE,MAAMkB,UAAU,CACdC,KAAM,iBACNC,WAAW,EACXC,MAAM,EACNC,WAAY,SAASC,GACjB,OAAOA,GAEXC,WAAY,CACRC,MAAO,WACPJ,KAAM,UACNK,KAAM,mBACNC,QAAS,8BAEd,CACCR,KAAM,eACNS,OAAQ1B,IAEZF,EAAE,MAAM6B,KAAK,mBAAoB,SAASC,EAAIC,GACvC5B,GACCH,EAAE,MAAMiB,IAAId,GAEhBH,EAAE,gBAAgBgC;;;;;;;GAY9BhC;EAAED,UAAUE,MAAM,WAIdD,EAAE,gBAAgBiC,QAKlBjC,EAAE,iBAAiBkC,MAAM,WAC5BnC,SAASoC,eAAe,KAAKC,MAAQ,KAMlCpC,EAAE,wBAAwBkC,MAAM,WAC5BlC,EAAEqC,MAAMC,WAMZtC,EAAE,iBAAiBkC,MAAM,WACrB,IAAIK,EAAmBvC,EAAEqC,MAAMG,KAAK,sBAChCC,EAAsBzC,EAAEqC,MAAMG,KAAK,0BAEf,KAArBD,GAAmD,KAAxBE,IAEtBC,SADD1C,EAAEqC,MAAMM,SAAS,aACL3C,EAAEqC,MAAMO,OAAOC,QAAQN,EAAkBE,GAEzCzC,EAAEqC,MAAMO,OAAOC,QAAQJ,EAAqBF,GAE3DvC,EAAEqC,MAAMO,KAAKF,aAOrB1C,EAAE,oBAAoBkC,MAAM,WACxB,IAAIY,EAAW,OAAS9C,EAAEqC,MAAMG,KAAK,aACjCO,EAAkB/C,EAAEqC,MAAMG,KAAK,qBAC/BQ,EAAkBhD,EAAEqC,MAAMG,KAAK,qBACZ,KAApBQ,IAEKN,SADD1C,EAAEqC,MAAMM,SAAS,eACL3C,EAAEqC,MAAMO,OAAOC,QAAQE,EAAiBC,GAExChD,EAAEqC,MAAMO,OAAOC,QAAQG,EAAiBD,GAEvD/C,EAAEqC,MAAMO,KAAKF,WAEjB1C,EAAEqC,MAAMY,YAAYH,GACpB9C,EAAEqC,MAAMY,YAAY,iBAMxBjD,EAAE,iBAAiBkC,MAAM,WACrB,IAAIgB,EAASlD,EAAEqC,MAAMG,KAAK,UACtBW,EAAcnD,EAAEkD,EAAS,aACzBE,EAAUD,EAAYE,KAAK,YAChBC,IAAZF,IAAqC,IAAZA,GACxBD,EAAYE,KAAK,MAAOF,EAAYX,KAAK,UAOjDxC,EAAE,WAAWuD,SAAS,WACtB,IAAIT,EAAW,OAAS9C,EAAEqC,MAAMG,KAAK,aAC9BxC,EAAEqC,MAAMM,SAAS,gBAChB3C,EAAE,mBAAmBqD,KAAK,UAAW,WACrCrD,EAAE,mBAAmBwD,KAAK,WAAW,GACrCxD,EAAE,WAAWyD,SAASX,GACtB9C,EAAE,WAAWyD,SAAS,UACtBzD,EAAE,WAAW0D,YAAY,iBAEzB1D,EAAE,mBAAmBqD,KAAK,UAAW,IACrCrD,EAAE,mBAAmB2D,WAAW,WAChC3D,EAAE,mBAAmB4D,SAAU,EAC/B5D,EAAE,WAAW0D,YAAYZ,GACzB9C,EAAE,WAAW0D,YAAY,UACzB1D,EAAE,WAAWyD,SAAS,kBAG9BzD,EAAE,aAAakC,MAAM,SAAS2B,GACf7D,EAAE6D,EAAEX,QAAQY,QAAQ,MAC1BC,WAAWV,KAAK,gBAAiB,SACtCrD,EAAE6D,EAAEX,QAAQc,SAASX,KAAK,gBAAiB,UAM/CpE,QAAQgF,uBAAyB,IAAIhF,QAAQiF,YAAY,gBAAiB,+BAAgC,oBAAqB,GAAI,EAAG,KACtIjF,QAAQgF,uBAAuBE;;;;;;GASnCnF;OAAOoF,iBAAiB,OAAQ,WAE5BpE,EAAE,YAAYqE,KAAK,WACf,IAAIC,EAAetE,EAAEqC,MAAMkC,KAAK,iBACbD,EAAad,KAAK,gBAAkBc,EAAaC,KAAK,oBAAoBC,UAC5EF,EAAaG,IAAI,cAAc5B,QAAQ,KAAM,KAE1D7C,EAAEqC,MAAMkC,KAAK,mBAAmBG;;;;;;;GAY5C1E;EAAED,UAAUE,MAAM,WACdD,EAAE,qBAAqBc,GAAI,QAAS,SAAU6D,GAC1C,IAAIC,EAAiB5E,EAAEqC,MAAMG,KAAK,kBAC9BqC,EAAU7E,EAAEqC,MAAMG,KAAK,WACvBsC,EAAU9E,EAAEqC,MAAMG,KAAK,WACvBuC,EAAW/E,EAAEqC,MAAMG,KAAK,YACxBwC,EAAkBhF,EAAEqC,MAAMG,KAAK,mBAC/ByC,EAAcjF,EAAEqC,MAAMG,KAAK,eAE5BwC,IACCE,UAAYC,EAAEC,OAAOJ,EAAgB,GAAIA,EAAgB,IACzDK,UAAYF,EAAEC,OAAOJ,EAAgB,GAAIA,EAAgB,IACzDM,WAAaH,EAAEI,aAAaL,UAAWG,YAI3CF,EAAEK,KAAKC,QAAQC,UAAa,oCAG5B,IAAIC,EAAMR,EAAEQ,IAAIf,GAKZgB,EAAY,IAAIT,EAAEU,UAFL,qDAE6B,CAACC,QAAS,EAAGC,QAAS,GAAIC,YADpD,kFAKD,IAAIb,EAAEU,UAFL,sDAEgC,CAACC,QAAS,EAAGC,QAAS,GAAIC,YADrD,yGAIzBC,WAAW,WACJX,WACCK,EAAIO,UAAUZ,WAAY,CACtBS,QAAQ,KAELlB,GAAWC,IACfC,EACCY,EAAIQ,QAAQ,IAAIhB,EAAEiB,OAAOtB,EAASD,GAASE,GAE3CY,EAAIQ,QAAQ,IAAIhB,EAAEiB,OAAOtB,EAASD,GAAS,KAEpD,GAEHc,EAAIU,SAAST,GAObT,EAAEmB,QAAQC,OALO,CACbC,aAAcZ,IAIWa,MAAMd,GAEhCV,GACCE,EAAEuB,QAAQzB,GAAawB,MAAMd,GAKjC3F,EAAGqC,MAAOsE,IAAKhC;;;;;;GAUvB3E;EAAED,UAAUE,MAAM,WACd2G,IAAIC,EAAsB,KAgBtB9G,SAAS+G,cAAc,uCACvB9G,EAAE,sBAAsB+G,MAAM,WAfH,MAAvBF,GACA7G,EAAEgH,KAAK,2BAA4BC,SAAS,QAAQC,KAAK,SAAS1E,GAC9DqE,EAAsBrE,EACtB,IAAK,GAAM,CAAC2E,EAAaC,KAAgBC,OAAOC,QAAQ9E,GAEpD,IAAI,MAAM+E,KADKvH,EAAE,sBAAwBmH,EAAc,mBACxB,CAC3BP,IAAIhF,EAAS,QAAU3C,QAAQW,aAAa4H,OAAS,UAAYJ,EAAY,GAAK,QAClFG,EAAQE,UAAYL,EAAY,GAAKxF;;;;;;GAoB7D5B;EAAED,UAAUE,MAAM,WACdD,EAAE,sBAAsBkC,MAAM,WAC1BlC,EAAE,yBAAyBqE,KAAK,WAAahC,KAAKuB,SAAU,MAGhE5D,EAAE,wBAAwBkC,MAAM,WAC5BlC,EAAE,yBAAyBqE,KAAK,WAAahC,KAAKuB,SAAU;;;;;;;;;;;;;;;;;;;;;EA2BnE;SAAU8D,EAAGxI,GACZ,SAASgF,EAAayD,EAAoBC,EAAkBC,EAAcC,EAAgBC,EAAkBC,GAC1G3F,KAAKsF,mBAAqBA,EAC1BtF,KAAKuF,iBAAmBA,EACxBvF,KAAKwF,aAAeA,EACpBxF,KAAKyF,eAAiBA,EACtBzF,KAAK0F,iBAAmBA,EACxB1F,KAAK2F,UAAYA,EACjB3F,KAAK4F,aAAc,EAcrB/D,EAAYgE,UAAUC,WAAa,SAAUC,EAAQC,GAInD,IAHA,IAAOC,EACHC,EAAI,EAEHC,EAAI,EAAGA,EAAIJ,EAAO5I,OAAQgJ,IAEL,GADxBF,EAAMF,EAAOI,IACJC,cAA0C,EAApBH,EAAII,cACjCH,GAAKD,EAAIG,aAAeH,EAAII,cAG5BH,GAAK,EAIT,OAAQF,EAAQD,EAAO5I,OAAS6C,KAAKyF,gBAAkBS,GAGzDrE,EAAYgE,UAAUS,SAAW,SAAUP,EAAQ5D,GAIjD,IAHA,IAAYoE,EACsBC,EAA9BC,EAAeV,EAAO5I,OAErBgJ,EAAI,EAAGA,EAAIM,EAAcN,IAG1BI,EADsB,GADxBN,EAAMF,EAAOI,IACJC,cAA0C,EAApBH,EAAII,cACtBlE,EAAS8D,EAAIG,aAAeH,EAAII,cAGhClE,EAEb8D,EAAIS,MAAMV,MAAQO,EAAW,KAC7BN,EAAIS,MAAMvE,OAASA,EAAS,KAC5B8D,EAAIS,MAAMC,WAAa3G,KAAK0F,iBAAmB,KAC/CO,EAAIS,MAAME,UAAY5G,KAAK0F,iBAAmB,KAC9CO,EAAIS,MAAMG,YAAc7G,KAAKyF,eAAiB,EAAI,KAClDQ,EAAIS,MAAMI,aAAe9G,KAAKyF,eAAiB,EAAI,MACnDe,EAAaP,EAAIc,WAAWA,YACZC,UAAUC,SAAS,OACjCT,EAAWQ,UAAUE,IAAI,OAK/BrF,EAAYgE,UAAUsB,WAAa,SAAUC,GAQ3C,IAPA,IAAIC,EAAaC,EAAOnB,EAAGoB,EACvBC,EAAmB3K,EAAE4H,cAAczE,KAAKsF,oBACxCmC,EAAsB9K,OAAO+K,iBAAiBF,GAC9CG,EAAuBC,SAASH,EAAoBI,iBAAiB,gBAAiB,IACtFC,EAAwBF,SAASH,EAAoBI,iBAAiB,iBAAkB,IACxFE,EAAiBP,EAAiBQ,YAAcL,EAAuBG,EAElD,EAAlBV,EAASjK,QAAY,CAE1B,IADAkK,GAAc,EACTlB,EAAI,EAAGA,GAAKiB,EAASjK,QAAUkK,EAAalB,IAC/CmB,EAAQF,EAASE,MAAM,EAAGnB,IAC1BoB,EAAIvH,KAAK8F,WAAWwB,EAAOS,IACnB/H,KAAK2F,YACX3F,KAAKsG,SAASgB,EAAOC,GAErBH,EAAWA,EAASE,MAAMnB,GAC1BkB,GAAc,GAGlB,GAAIA,EAAa,CACfrH,KAAKsG,SAASgB,EAAOW,KAAKC,IAAIlI,KAAK2F,UAAW4B,IAC9C,SAKN1F,EAAYgE,UAAUsC,MAAQ,WAQ5B,IAPA,IACIC,EAAuBvL,EAAEwL,iBAAiBrI,KAAKuF,kBAC/C+C,EAAiBF,EAAqBjL,OACtCoL,EAAW,KACXC,EAAU,KACVpB,EAAW,GAEVjB,EAAI,EAAGA,EAAImC,EAAgBnC,KAC9BqC,EAAUJ,EAAqBjC,IACnBsC,yBAA2BF,GAA8B,EAAlBnB,EAASjK,SAI1D6C,KAAKmH,WAAWC,GAEhBA,EAAW,IAGbA,EAASsB,KAAKF,EAAQ/D,cAAczE,KAAKwF,eAEzC+C,EAAWC,EAGS,EAAlBpB,EAASjK,QACX6C,KAAKmH,WAAWC,IAIpBvF,EAAYgE,UAAU/D,MAAQ,WAC5B,IAAIqE,EAAGF,EACH/H,EAAM8B,KACN2I,EAAgB9L,EAAEwL,iBAAiBrI,KAAKuF,kBACxC+C,EAAiBK,EAAcxL,OAEnC,SAASyL,EAAgBtG,GAEvBA,EAAMuG,eAAeC,IAAMzD,EAAEzI,QAAQmM,YAAc1D,EAAEzI,QAAQoM,MAAMJ,eAGrE,SAASK,IACH/K,EAAI0H,cACN1H,EAAI0H,aAAc,EAClBhC,WAAW,WACT1F,EAAIiK,QACJjK,EAAI0H,aAAc,GACjB,MAWP,IANAP,EAAEtD,iBAAiB,WAAYkH,GAE/B5D,EAAEtD,iBAAiB,OAAQkH,GAE3B5D,EAAEtD,iBAAiB,SAAUkH,GAExB9C,EAAI,EAAGA,EAAImC,EAAgBnC,IAE1BF,OADJA,EAAM0C,EAAcxC,GAAG1B,cAAczE,KAAKwF,iBAExCS,EAAIlE,iBAAiB,OAAQkH,GAE7BhD,EAAIlE,iBAAiB,QAASkH,GAC1B5D,EAAEzI,QAAQoM,MAAMJ,gBAClB3C,EAAIlE,iBAAiB,QAAS6G,EAAgB,CAACM,MAAM,MAM7D7D,EAAEzI,QAAQiF,YAAcA,EAjK1B,CAmKElF,OAAQe"}
\ No newline at end of file diff --git a/searx/static/themes/simple/gruntfile.js b/searx/static/themes/simple/gruntfile.js index 824ab66d0..52c460494 100644 --- a/searx/static/themes/simple/gruntfile.js +++ b/searx/static/themes/simple/gruntfile.js @@ -177,7 +177,7 @@ module.exports = function (grunt) { 'chevron-up-outline': 'node_modules/ionicons/dist/svg/chevron-up-outline.svg', 'chevron-right': 'node_modules/ionicons/dist/svg/chevron-forward-outline.svg', 'chevron-left': 'node_modules/ionicons/dist/svg/chevron-back-outline.svg', - 'menu-outline': 'node_modules/ionicons/dist/svg/menu-outline.svg', + 'menu-outline': 'node_modules/ionicons/dist/svg/settings-outline.svg', 'ellipsis-vertical-outline': 'node_modules/ionicons/dist/svg/ellipsis-vertical-outline.svg', 'magnet-outline': 'node_modules/ionicons/dist/svg/magnet-outline.svg', 'globe-outline': 'node_modules/ionicons/dist/svg/globe-outline.svg', diff --git a/searx/templates/__common__/about.html b/searx/templates/__common__/about.html deleted file mode 100644 index 5a9065f03..000000000 --- a/searx/templates/__common__/about.html +++ /dev/null @@ -1,102 +0,0 @@ -<div{% if rtl %} dir="ltr"{% endif %}> - <h1>About <a href="{{ url_for('index') }}">searxng</a></h1> - - <p> - SearXNG is a fork from the well-known <a href="https://github.com/searx/searx">searx</a> - <a href="https://en.wikipedia.org/wiki/Metasearch_engine"> metasearch engine</a>, - aggregating the results of other <a href="{{ url_for('preferences') }}">search engines</a> - while not storing information about its users. - </p> - - <p>More about SearXNG ...</p> - - <ul> - <li><a href="{{ searx_git_url }}">SearXNG sources</a></li> - <li><a href="https://weblate.bubu1.eu/projects/searxng/">weblate</a></li> - </ul> - - <hr /> - - <h2>Why use it?</h2> - - <ul> - <li> - SearXNG may not offer you as personalised results as Google, but it doesn't - generate a profile about you. - </li> - <li> - SearXNG doesn't care about what you search for, never shares anything with a - third party, and it can't be used to compromise you. - </li> - <li> - SearXNG is free software, the code is 100% open and you can help to make - it better. See more on <a href="{{ searx_git_url - }}">SearXNG sources</a>. - </li> - </ul> - - <p> - If you do care about privacy, want to be a conscious user, or otherwise - believe in digital freedom, make SearXNG your default search engine or run - it on your own server - </p> - - <h2>Technical details - How does it work?</h2> - - <p> - SearXNG is a <a href="https://en.wikipedia.org/wiki/Metasearch_engine">metasearch engine</a>, - inspired by the <a href="https://beniz.github.io/seeks/">seeks project</a>. - - It provides basic privacy by mixing your queries with searches on other - platforms without storing search data. Queries are made using a POST request - on every browser (except Chromium-based browsers*). Therefore they show up - in neither our logs, nor your url history. In the case of Chromium-based - browser users there is an exception: searx uses the search bar to perform GET - requests. - - SearXNG can be added to your browser's search bar; moreover, it can be set as - the default search engine. - </p> - - <h2 id='add to browser'>How to set as the default search engine?</h2> - - <p> - SearXNG supports <a href="https://github.com/dewitt/opensearch/blob/master/opensearch-1-1-draft-6.md">OpenSearch</a>. - For more information on changing your default search engine, see your browser's documentation: - </p> - - <ul> - <li><a href="https://support.mozilla.org/en-US/kb/add-or-remove-search-engine-firefox">Firefox</a></li> - <li><a href="https://support.microsoft.com/en-us/help/4028574/microsoft-edge-change-the-default-search-engine">Microsoft Edge</a></li> - <li>Chromium-based browsers <a href="https://www.chromium.org/tab-to-search">only add websites that the user navigates to without a path.</a> - </ul> - - <h2>Where to find anonymous usage statistics of this instance ?</h2> - - <p> - <a href="{{ url_for('stats') }}">Stats page</a> contains some useful data about the engines used. - </p> - - <h2>How can I make it my own?</h2> - - <p> - SearXNG appreciates your concern regarding logs, so take the code from - the <a href="{{ searx_git_url }}">SearXNG project</a> and - run it yourself! - </p> - <p> - Add your instance to this <a href="{{ get_setting('brand.public_instances') }}"> list of - public instances</a> to help other people reclaim their privacy and make the - Internet freer! The more decentralized the Internet is, the more freedom we - have! - </p> - - <h2>Where are the docs & code of this instance?</h2> - - <p> - See the <a href="{{ get_setting('brand.docs_url') }}">SearXNG docs</a> - and <a href="{{ searx_git_url }}">SearXNG sources</a> - </p> - -</div> -{% include "__common__/aboutextend.html" ignore missing %} diff --git a/searx/templates/oscar/about.html b/searx/templates/oscar/about.html index bc7fed8e1..a644761b6 100644 --- a/searx/templates/oscar/about.html +++ b/searx/templates/oscar/about.html @@ -1,5 +1,6 @@ {% extends "oscar/base.html" %} {% block title %}{{ _('about') }} - {% endblock %} {% block content %} -{% include '__common__/about.html' %} +{{ help.about | safe }} +{% include "__common__/aboutextend.html" ignore missing %} {% endblock %} diff --git a/searx/templates/simple/about.html b/searx/templates/simple/about.html index 1913879da..9f6a10ced 100644 --- a/searx/templates/simple/about.html +++ b/searx/templates/simple/about.html @@ -1,4 +1,5 @@ {% extends 'simple/base.html' %} {% block content %} -{% include '__common__/about.html' %} +{{ help.about | safe }} +{% include "__common__/aboutextend.html" ignore missing %} {% endblock %} diff --git a/searx/templates/simple/icons.html b/searx/templates/simple/icons.html index 3093e3e29..c23c32ee7 100644 --- a/searx/templates/simple/icons.html +++ b/searx/templates/simple/icons.html @@ -5,7 +5,7 @@ 'chevron-up-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M112 328l144-144 144 144"/></svg>', 'chevron-right':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M184 112l144 144-144 144"/></svg>', 'chevron-left':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M328 112L184 256l144 144"/></svg>', - 'menu-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32" d="M80 160h352M80 256h352M80 352h352"/></svg>', + 'menu-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M262.29 192.31a64 64 0 1057.4 57.4 64.13 64.13 0 00-57.4-57.4zM416.39 256a154.34 154.34 0 01-1.53 20.79l45.21 35.46a10.81 10.81 0 012.45 13.75l-42.77 74a10.81 10.81 0 01-13.14 4.59l-44.9-18.08a16.11 16.11 0 00-15.17 1.75A164.48 164.48 0 01325 400.8a15.94 15.94 0 00-8.82 12.14l-6.73 47.89a11.08 11.08 0 01-10.68 9.17h-85.54a11.11 11.11 0 01-10.69-8.87l-6.72-47.82a16.07 16.07 0 00-9-12.22 155.3 155.3 0 01-21.46-12.57 16 16 0 00-15.11-1.71l-44.89 18.07a10.81 10.81 0 01-13.14-4.58l-42.77-74a10.8 10.8 0 012.45-13.75l38.21-30a16.05 16.05 0 006-14.08c-.36-4.17-.58-8.33-.58-12.5s.21-8.27.58-12.35a16 16 0 00-6.07-13.94l-38.19-30A10.81 10.81 0 0149.48 186l42.77-74a10.81 10.81 0 0113.14-4.59l44.9 18.08a16.11 16.11 0 0015.17-1.75A164.48 164.48 0 01187 111.2a15.94 15.94 0 008.82-12.14l6.73-47.89A11.08 11.08 0 01213.23 42h85.54a11.11 11.11 0 0110.69 8.87l6.72 47.82a16.07 16.07 0 009 12.22 155.3 155.3 0 0121.46 12.57 16 16 0 0015.11 1.71l44.89-18.07a10.81 10.81 0 0113.14 4.58l42.77 74a10.8 10.8 0 01-2.45 13.75l-38.21 30a16.05 16.05 0 00-6.05 14.08c.33 4.14.55 8.3.55 12.47z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/></svg>', 'ellipsis-vertical-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><circle cx="256" cy="256" r="32" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><circle cx="256" cy="416" r="32" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><circle cx="256" cy="96" r="32" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/></svg>', 'magnet-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M421.83 293.82A144 144 0 00218.18 90.17M353.94 225.94a48 48 0 00-67.88-67.88" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32" d="M192 464v-48M90.18 421.82l33.94-33.94M48 320h48"/><path d="M286.06 158.06L172.92 271.19a32 32 0 01-45.25 0L105 248.57a32 32 0 010-45.26L218.18 90.17M421.83 293.82L308.69 407a32 32 0 01-45.26 0l-22.62-22.63a32 32 0 010-45.26l113.13-113.17M139.6 169.98l67.88 67.89M275.36 305.75l67.89 67.88" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32"/></svg>', 'globe-outline':'<svg class="ionicon" viewBox="0 0 512 512" aria-hidden="true"><path d="M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><path d="M256 48c-58.07 0-112.67 93.13-112.67 208S197.93 464 256 464s112.67-93.13 112.67-208S314.07 48 256 48z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32"/><path d="M117.33 117.33c38.24 27.15 86.38 43.34 138.67 43.34s100.43-16.19 138.67-43.34M394.67 394.67c-38.24-27.15-86.38-43.34-138.67-43.34s-100.43 16.19-138.67 43.34" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><path fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32" d="M256 48v416M464 256H48"/></svg>', diff --git a/searx/templates/simple/macros.html b/searx/templates/simple/macros.html index c1c421ab1..6c64c23ea 100644 --- a/searx/templates/simple/macros.html +++ b/searx/templates/simple/macros.html @@ -1,3 +1,5 @@ +{% from 'simple/icons.html' import icon_small %} + <!-- Draw favicon --> {% macro draw_favicon(favicon) -%} <img width="14" height="14" class="favicon" src="{{ url_for('static', filename='themes/simple/img/icons/' + favicon + '.png') }}" alt="{{ favicon }}"> diff --git a/searx/user_help.py b/searx/user_help.py new file mode 100644 index 000000000..bf7336777 --- /dev/null +++ b/searx/user_help.py @@ -0,0 +1,48 @@ +from typing import Dict +import os.path +import pkg_resources + +import flask +from flask.helpers import url_for +import mistletoe + +from . import get_setting +from .version import GIT_URL + +HELP: Dict[str, str] = {} +""" Maps a filename under help/ without the file extension to the rendered HTML. """ + + +def render(app: flask.Flask): + """ + Renders the user documentation. Must be called after all Flask routes have been + registered, because the documentation might try to link to them with Flask's `url_for`. + + We render the user documentation once on startup to improve performance. + """ + + link_targets = { + 'brand.git_url': GIT_URL, + 'brand.public_instances': get_setting('brand.public_instances'), + 'brand.docs_url': get_setting('brand.docs_url'), + } + + base_url = get_setting('server.base_url') or None + # we specify base_url so that url_for works for base_urls that have a non-root path + + with app.test_request_context(base_url=base_url): + link_targets['url_for:index'] = url_for('index') + link_targets['url_for:preferences'] = url_for('preferences') + link_targets['url_for:stats'] = url_for('stats') + + define_link_targets = ''.join(f'[{name}]: {url}\n' for name, url in link_targets.items()) + + for filename in pkg_resources.resource_listdir(__name__, 'help'): + rootname, ext = os.path.splitext(filename) + + if ext != '.md': + continue + + markdown = pkg_resources.resource_string(__name__, 'help/' + filename).decode() + markdown = define_link_targets + markdown + HELP[rootname] = mistletoe.markdown(markdown) diff --git a/searx/webapp.py b/searx/webapp.py index f509fea24..7e351bfaa 100755 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -55,6 +55,7 @@ from searx import ( get_setting, settings, searx_debug, + user_help, ) from searx.data import ENGINE_DESCRIPTIONS from searx.results import Timing, UnresponsiveEngine @@ -867,7 +868,7 @@ def __get_translated_errors(unresponsive_engines: Iterable[UnresponsiveEngine]): @app.route('/about', methods=['GET']) def about(): """Render about page""" - return render('about.html') + return render('about.html', help=user_help.HELP) @app.route('/autocompleter', methods=['GET', 'POST']) @@ -1169,6 +1170,13 @@ def engine_descriptions(): if isinstance(description, str): description = [description, 'wikipedia'] result[engine] = description + + # overwrite by about:description (from settings) + for engine_name, engine_mod in engines.items(): + descr = getattr(engine_mod, 'about', {}).get('description', None) + if descr is not None: + result[engine_name] = [descr, "SearXNG config"] + return jsonify(result) @@ -1359,6 +1367,7 @@ werkzeug_reloader = flask_run_development or (searx_debug and __name__ == "__mai if not werkzeug_reloader or (werkzeug_reloader and os.environ.get("WERKZEUG_RUN_MAIN") == "true"): plugin_initialize(app) search_initialize(enable_checker=True, check_network=True, enable_metrics=settings['general']['enable_metrics']) + user_help.render(app) def run(): diff --git a/utils/lib_nvm.sh b/utils/lib_nvm.sh index 267ba8a4a..04aa8a92e 100755 --- a/utils/lib_nvm.sh +++ b/utils/lib_nvm.sh @@ -26,11 +26,12 @@ NVM_LOCAL_FOLDER=.nvm nvm.env() { source "${NVM_DIR}/nvm.sh" source "${NVM_DIR}/bash_completion" + [ "$VERBOSE" = "1" ] && info_msg "sourced NVM environment from ${NVM_DIR}" } nvm.is_installed() { # is true if NVM is installed / in $HOME or even in <repo-root>/.nvm - [[ -d "${NVM_DIR}" ]] + [[ -f "${NVM_DIR}/nvm.sh" ]] } if [[ -z "${NVM_DIR}" ]]; then @@ -40,7 +41,6 @@ fi export NVM_DIR if nvm.is_installed; then - [ "$VERBOSE" = "1" ] && info_msg "source NVM environment from ${NVM_DIR}" nvm.env else # if nvm is not installed, use this function as a wrapper @@ -58,7 +58,7 @@ nvm.is_local() { [ "${NVM_DIR}" = "$(git rev-parse --show-toplevel)/${NVM_LOCAL_FOLDER}" ] } -nvm.min_node(){ +nvm.min_node() { # usage: nvm.min_node 16.3.0 # @@ -87,7 +87,7 @@ nvm.min_node(){ # implement nvm command line # -------------------------- -nvm.help(){ +nvm.help() { cat <<EOF nvm.: use nvm (without dot) to execute nvm commands directly install : install NVM locally at $(git rev-parse --show-toplevel)/${NVM_LOCAL_FOLDER} @@ -117,7 +117,9 @@ nvm.install() { info_msg "checkout ${NVM_VERSION_TAG}" git checkout "${NVM_VERSION_TAG}" 2>&1 | prefix_stdout " ${_Yellow}||${_creset} " popd &> /dev/null - cp "${REPO_ROOT}/.nvm_packages" "${NVM_DIR}/default-packages" + if [ -f "${REPO_ROOT}/.nvm_packages" ]; then + cp "${REPO_ROOT}/.nvm_packages" "${NVM_DIR}/default-packages" + fi nvm.env } |