mirror of
https://github.com/searxng/searxng.git
synced 2026-05-07 18:03:51 +02:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 19cb234514 |
Generated
+8
-31
@@ -24,13 +24,13 @@
|
||||
"mathjs": "^15.2.0",
|
||||
"sharp": "~0.34.5",
|
||||
"sort-package-json": "^3.6.1",
|
||||
"stylelint": "^17.9.1",
|
||||
"stylelint": "^17.9.0",
|
||||
"stylelint-config-standard-less": "^4.1.0",
|
||||
"stylelint-prettier": "^5.0.3",
|
||||
"svgo": "^4.0.1",
|
||||
"typescript": "~6.0.3",
|
||||
"vite": "^8.0.10",
|
||||
"vite-bundle-analyzer": "^1.3.8"
|
||||
"vite-bundle-analyzer": "^1.3.7"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/code-frame": {
|
||||
@@ -417,29 +417,6 @@
|
||||
"postcss-selector-parser": "^7.1.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@emnapi/core": {
|
||||
"version": "1.10.0",
|
||||
"resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz",
|
||||
"integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"@emnapi/wasi-threads": "1.2.1",
|
||||
"tslib": "^2.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@emnapi/runtime": {
|
||||
"version": "1.10.0",
|
||||
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz",
|
||||
"integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"tslib": "^2.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@emnapi/wasi-threads": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz",
|
||||
@@ -4059,9 +4036,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/stylelint": {
|
||||
"version": "17.9.1",
|
||||
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.9.1.tgz",
|
||||
"integrity": "sha512-THTmnAPJTrg/JhkTWZlSyrO+HUYMx6ELthIHeMyD2WOKqXIJUFQv2Yxn91bvUrZdbBJaW2dUuQdPST2wcQ6C3g==",
|
||||
"version": "17.9.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.9.0.tgz",
|
||||
"integrity": "sha512-xO0jeY6z1/urFL5L/BZLmB1yYlbRiRMQnYH6ArZIDWJ+SZXGssOY7XoYb1JIv/L220+EBnwwJXJS4Mt/F96SvA==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -4623,9 +4600,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/vite-bundle-analyzer": {
|
||||
"version": "1.3.8",
|
||||
"resolved": "https://registry.npmjs.org/vite-bundle-analyzer/-/vite-bundle-analyzer-1.3.8.tgz",
|
||||
"integrity": "sha512-IIk7WPhoYs7pyo75jwI+dFt7yykgjK7NY+dqnJtiZnyqP2k6NgPb3TY80FLFjtgnfk/o+OjI18+anKyeviCbRA==",
|
||||
"version": "1.3.7",
|
||||
"resolved": "https://registry.npmjs.org/vite-bundle-analyzer/-/vite-bundle-analyzer-1.3.7.tgz",
|
||||
"integrity": "sha512-dYlW6iM0Gq7+uSEfXytDC+UjruUMgEKhXwQUbw4cJUgHA6FdEhpLgIrL5OZEyabrzVen0mZyfOSESyZ7nGyT8g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
|
||||
@@ -38,12 +38,12 @@
|
||||
"mathjs": "^15.2.0",
|
||||
"sharp": "~0.34.5",
|
||||
"sort-package-json": "^3.6.1",
|
||||
"stylelint": "^17.9.1",
|
||||
"stylelint": "^17.9.0",
|
||||
"stylelint-config-standard-less": "^4.1.0",
|
||||
"stylelint-prettier": "^5.0.3",
|
||||
"svgo": "^4.0.1",
|
||||
"typescript": "~6.0.3",
|
||||
"vite": "^8.0.10",
|
||||
"vite-bundle-analyzer": "^1.3.8"
|
||||
"vite-bundle-analyzer": "^1.3.7"
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
-57
@@ -1,57 +0,0 @@
|
||||
.content {
|
||||
width: 52em; /* instead of 46em */
|
||||
}
|
||||
|
||||
p code.literal {
|
||||
text-wrap: nowrap;
|
||||
}
|
||||
|
||||
aside.sidebar {
|
||||
border-color: lightsteelblue;
|
||||
border-radius: 3pt;
|
||||
}
|
||||
|
||||
p.sidebar-title, .sidebar p {
|
||||
margin: 6pt;
|
||||
}
|
||||
|
||||
.sidebar li,
|
||||
.hlist li {
|
||||
list-style-type: disclosure-closed;
|
||||
}
|
||||
|
||||
.sphinxsidebar .current > a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* admonitions with (rendered) reST markup examples (:class: rst-example)
|
||||
*
|
||||
* .. admonition:: title of the example
|
||||
* :class: rst-example
|
||||
* ....
|
||||
*/
|
||||
|
||||
div.rst-example {
|
||||
background-color: inherit;
|
||||
margin: 0;
|
||||
border-top: none;
|
||||
border-right: 1px solid #ccc;
|
||||
border-bottom: none;
|
||||
border-left: none;
|
||||
border-radius: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.rst-example > p.admonition-title {
|
||||
font-family: Sans Serif;
|
||||
font-style: italic;
|
||||
font-size: 0.8em;
|
||||
display: block;
|
||||
border-bottom: 1px solid #ccc;
|
||||
padding: 0.5em 1em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
div.sphinx-tabs {
|
||||
clear: both;
|
||||
}
|
||||
+151
@@ -0,0 +1,151 @@
|
||||
@import url("pocoo.css");
|
||||
|
||||
a, a.reference, a.footnote-reference {
|
||||
color: #004b6b;
|
||||
border-color: #004b6b;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #6d4100;
|
||||
border-color: #6d4100;
|
||||
}
|
||||
|
||||
p.version-warning {
|
||||
background-color: #004b6b;
|
||||
}
|
||||
|
||||
aside.sidebar {
|
||||
background-color: whitesmoke;
|
||||
border-color: lightsteelblue;
|
||||
border-radius: 3pt;
|
||||
}
|
||||
|
||||
div.sphinxsidebar p.caption {
|
||||
display: none;
|
||||
}
|
||||
|
||||
p.sidebar-title, .sidebar p {
|
||||
margin: 6pt;
|
||||
}
|
||||
|
||||
.sidebar li,
|
||||
.hlist li {
|
||||
list-style-type: disclosure-closed;
|
||||
}
|
||||
|
||||
.sphinxsidebar .current > a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* admonitions
|
||||
*/
|
||||
|
||||
div.admonition, div.topic, nav.contents, div.toctree-wrapper {
|
||||
background-color: #fafafa;
|
||||
margin: 8px 0px;
|
||||
padding: 1em;
|
||||
border-radius: 3pt 0 0 3pt;
|
||||
border-top: none;
|
||||
border-right: none;
|
||||
border-bottom: none;
|
||||
border-left: 5pt solid #ccc;
|
||||
list-style-type: disclosure-closed;
|
||||
}
|
||||
|
||||
div.toctree-wrapper p.caption {
|
||||
font-weight: normal;
|
||||
font-size: 24px;
|
||||
margin: 0 0 10px 0;
|
||||
padding: 0;
|
||||
line-height: 1;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
p.admonition-title:after {
|
||||
content: none;
|
||||
}
|
||||
|
||||
.admonition.hint { border-color: #416dc0b0; }
|
||||
.admonition.note { border-color: #6c856cb0; }
|
||||
.admonition.tip { border-color: #85c5c2b0; }
|
||||
.admonition.attention { border-color: #ecec97b0; }
|
||||
.admonition.caution { border-color: #a6c677b0; }
|
||||
.admonition.danger { border-color: #d46262b0; }
|
||||
.admonition.important { border-color: #dfa3a3b0; }
|
||||
.admonition.error { border-color: red; }
|
||||
.admonition.warning { border-color: darkred; }
|
||||
|
||||
.admonition.admonition-generic-admonition-title {
|
||||
border-color: #416dc0b0;
|
||||
}
|
||||
|
||||
|
||||
/* admonitions with (rendered) reST markup examples (:class: rst-example)
|
||||
*
|
||||
* .. admonition:: title of the example
|
||||
* :class: rst-example
|
||||
* ....
|
||||
*/
|
||||
|
||||
div.rst-example {
|
||||
background-color: inherit;
|
||||
margin: 0;
|
||||
border-top: none;
|
||||
border-right: 1px solid #ccc;
|
||||
border-bottom: none;
|
||||
border-left: none;
|
||||
border-radius: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.rst-example > p.admonition-title {
|
||||
font-family: Sans Serif;
|
||||
font-style: italic;
|
||||
font-size: 0.8em;
|
||||
display: block;
|
||||
border-bottom: 1px solid #ccc;
|
||||
padding: 0.5em 1em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* code block in figures
|
||||
*/
|
||||
|
||||
div.highlight pre {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
/* Table theme
|
||||
*/
|
||||
|
||||
thead, tfoot {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
th:hover, td:hover {
|
||||
background-color: #ffc;
|
||||
}
|
||||
|
||||
thead th, tfoot th, tfoot td, tbody th {
|
||||
background-color: #fffaef;
|
||||
}
|
||||
|
||||
tbody tr:nth-child(odd) {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
tbody tr:nth-child(even) {
|
||||
background-color: #fafafa;
|
||||
}
|
||||
|
||||
caption {
|
||||
font-family: Sans Serif;
|
||||
padding: 0.5em;
|
||||
margin: 0.5em 0 0.5em 0;
|
||||
caption-side: top;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
div.sphinx-tabs {
|
||||
clear: both;
|
||||
}
|
||||
Vendored
+7
@@ -0,0 +1,7 @@
|
||||
[theme]
|
||||
inherit = pocoo
|
||||
stylesheet = searxng.css
|
||||
|
||||
[options]
|
||||
touch_icon =
|
||||
globaltoc_maxdepth = 5
|
||||
@@ -4,6 +4,11 @@
|
||||
Buildhosts
|
||||
==========
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
To get best results from build, it's recommend to install additional packages on
|
||||
build hosts (see :ref:`searxng.sh`).
|
||||
|
||||
|
||||
@@ -61,6 +61,11 @@ section might give you some guidance.
|
||||
- `Apache Fedora`_
|
||||
- `Apache directives`_
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
|
||||
The Apache HTTP server
|
||||
======================
|
||||
|
||||
@@ -41,6 +41,12 @@ section might give you some guidance.
|
||||
- `uWSGI support from nginx`_
|
||||
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
|
||||
The nginx HTTP server
|
||||
=====================
|
||||
|
||||
|
||||
@@ -4,6 +4,12 @@
|
||||
Step by step installation
|
||||
=========================
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
|
||||
In this section we show the setup of a SearXNG instance that will be installed
|
||||
by the :ref:`installation scripts`.
|
||||
|
||||
|
||||
@@ -9,6 +9,12 @@ uWSGI
|
||||
- `systemd.unit`_
|
||||
- `uWSGI Emperor`_
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
|
||||
.. _systemd.unit: https://www.freedesktop.org/software/systemd/man/systemd.unit.html
|
||||
.. _One service per app in systemd:
|
||||
https://uwsgi-docs.readthedocs.io/en/latest/Systemd.html#one-service-per-app-in-systemd
|
||||
|
||||
@@ -8,6 +8,11 @@ Favicons
|
||||
|
||||
Don't activate the favicons before reading the documentation.
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
Activating the favicons in SearXNG is very easy, but this **generates a
|
||||
significantly higher load** in the client/server communication and increases
|
||||
resources needed on the server.
|
||||
@@ -245,3 +250,4 @@ into the *proxy*:
|
||||
.. _data URL:
|
||||
https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs
|
||||
.. _FQN: https://en.wikipedia.org/wiki/Fully_qualified_name
|
||||
|
||||
|
||||
@@ -8,5 +8,10 @@ Limiter
|
||||
|
||||
The limiter requires a :ref:`Valkey <settings valkey>` database.
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.limiter
|
||||
:members:
|
||||
|
||||
@@ -12,6 +12,11 @@ file.
|
||||
- :ref:`use_default_settings.yml`
|
||||
- :ref:`search API`
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. _settings location:
|
||||
|
||||
settings.yml location
|
||||
|
||||
@@ -102,18 +102,11 @@ The built-in plugins are all located in the namespace `searx.plugins`.
|
||||
external plugins
|
||||
================
|
||||
|
||||
SearXNG supports :ref:`external plugins <dev plugin>` / there is no need to
|
||||
install one, SearXNG runs out of the box.
|
||||
|
||||
`Only show green hosted results`_:
|
||||
SearXNG plugin to check if a domain is part of the Green WEB.
|
||||
|
||||
`SearXNG BM25 Reranker`_:
|
||||
SearXNG plugin that reranks search results using BM25 text relevance scoring
|
||||
to improve search quality.
|
||||
|
||||
.. _Only show green hosted results:
|
||||
https://github.com/return42/tgwf-searx-plugins/
|
||||
https://github.com/return42/tgwf-searx-plugins/
|
||||
|
||||
.. _SearXNG BM25 Reranker:
|
||||
https://github.com/Oaklight/searxng-bm25-reranker
|
||||
SearXNG supports *external plugins* / there is no need to install one, SearXNG
|
||||
runs out of the box.
|
||||
|
||||
- `Only show green hosted results`_
|
||||
- ..
|
||||
|
||||
@@ -9,6 +9,11 @@ SearXNG maintenance
|
||||
- :ref:`toolboxing`
|
||||
- :ref:`uWSGI maintenance`
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. _update searxng:
|
||||
|
||||
How to update
|
||||
|
||||
+34
-41
@@ -1,7 +1,8 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
import os
|
||||
import sys, os
|
||||
from pathlib import Path
|
||||
from pallets_sphinx_themes import ProjectLink
|
||||
|
||||
from searx import get_setting
|
||||
from searx.version import VERSION_STRING, GIT_URL, GIT_BRANCH
|
||||
@@ -97,6 +98,7 @@ extlinks['pull-searx'] = ('https://github.com/searx/searx/pull/%s', 'PR %s')
|
||||
extlinks['origin'] = (GIT_URL + '/blob/' + GIT_BRANCH + '/%s', 'git://%s')
|
||||
extlinks['patch'] = (GIT_URL + '/commit/%s', '#%s')
|
||||
extlinks['docs'] = (DOCS_URL + '/%s', 'docs: %s')
|
||||
extlinks['pypi'] = ('https://pypi.org/project/%s', 'PyPi: %s')
|
||||
extlinks['man'] = ('https://manpages.debian.org/jump?q=%s', '%s')
|
||||
#extlinks['role'] = (
|
||||
# 'https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-%s', '')
|
||||
@@ -115,6 +117,7 @@ extensions = [
|
||||
'sphinx.ext.viewcode',
|
||||
"sphinx.ext.autodoc",
|
||||
"sphinx.ext.intersphinx",
|
||||
"pallets_sphinx_themes",
|
||||
"sphinx_issues", # https://github.com/sloria/sphinx-issues/blob/master/README.rst
|
||||
"sphinx_jinja", # https://github.com/tardyp/sphinx-jinja
|
||||
"sphinxcontrib.programoutput", # https://github.com/NextThought/sphinxcontrib-programoutput
|
||||
@@ -155,49 +158,15 @@ issues_github_path = "searxng/searxng"
|
||||
|
||||
# HTML -----------------------------------------------------------------
|
||||
|
||||
html_theme = "furo"
|
||||
html_theme_options = {
|
||||
# link to project source at GitHub for editing and viewing docs code
|
||||
"source_repository": "https://github.com/searxng/searxng/",
|
||||
"source_branch": "master",
|
||||
"source_directory": "docs/",
|
||||
|
||||
# Show link to repository & searx.space in footer
|
||||
"footer_icons": [
|
||||
{
|
||||
"name": "GitHub",
|
||||
"url": "https://github.com/searxng/searxng/",
|
||||
"html": "💾",
|
||||
},
|
||||
{
|
||||
"name": "searx.space",
|
||||
"url": "https://searx.space/",
|
||||
"html": "🌐",
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
html_sidebars = {
|
||||
"**": [
|
||||
"sidebar/scroll-start.html",
|
||||
"sidebar/brand.html",
|
||||
"sidebar/search.html",
|
||||
"sidebar/navigation.html",
|
||||
"sidebar/ethical-ads.html",
|
||||
"sidebar/scroll-end.html",
|
||||
]
|
||||
}
|
||||
|
||||
html_static_path = ['_static']
|
||||
|
||||
html_css_files = [
|
||||
'searxng.css',
|
||||
]
|
||||
|
||||
# https://searxng.github.io/searxng --> '/searxng/'
|
||||
# https://docs.searxng.org --> '/'
|
||||
notfound_urls_prefix = '/'
|
||||
|
||||
sys.path.append(os.path.abspath('_themes'))
|
||||
sys.path.insert(0, os.path.abspath("../"))
|
||||
html_theme_path = ['_themes']
|
||||
html_theme = "searxng"
|
||||
|
||||
# sphinx.ext.imgmath setup
|
||||
html_math_renderer = 'imgmath'
|
||||
imgmath_image_format = 'svg'
|
||||
@@ -205,10 +174,34 @@ imgmath_font_size = 14
|
||||
# sphinx.ext.imgmath setup END
|
||||
|
||||
html_show_sphinx = False
|
||||
html_theme_options = {"index_sidebar_logo": True}
|
||||
html_context = {"project_links": [] }
|
||||
html_context["project_links"].append(ProjectLink("Source", GIT_URL + '/tree/' + GIT_BRANCH))
|
||||
|
||||
if WIKI_URL:
|
||||
html_context["project_links"].append(ProjectLink("Wiki", WIKI_URL))
|
||||
if PUBLIC_INSTANCES:
|
||||
html_context["project_links"].append(ProjectLink("Public instances", PUBLIC_INSTANCES))
|
||||
if ISSUE_URL:
|
||||
html_context["project_links"].append(ProjectLink("Issue Tracker", ISSUE_URL))
|
||||
if PRIVACYPOLICY_URL:
|
||||
html_context["project_links"].append(ProjectLink("Privacy Policy", PRIVACYPOLICY_URL))
|
||||
if CONTACT_URL:
|
||||
html_context["project_links"].append(ProjectLink("Contact", CONTACT_URL))
|
||||
|
||||
html_sidebars = {
|
||||
"**": [
|
||||
"globaltoc.html",
|
||||
"project.html",
|
||||
"relations.html",
|
||||
"searchbox.html",
|
||||
"sourcelink.html"
|
||||
],
|
||||
}
|
||||
singlehtml_sidebars = {"index": ["project.html", "localtoc.html"]}
|
||||
html_logo = "../client/simple/src/brand/searxng-wordmark.svg"
|
||||
html_title = "SearXNG Documentation ({})".format(VERSION_STRING)
|
||||
html_show_sourcelink = True
|
||||
html_copy_source = True
|
||||
|
||||
# LaTeX ----------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -4,6 +4,11 @@
|
||||
How to contribute
|
||||
=================
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
Prime directives: Privacy, Hackability
|
||||
======================================
|
||||
|
||||
|
||||
@@ -4,6 +4,11 @@
|
||||
Demo Offline Engine
|
||||
===================
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.demo_offline
|
||||
:members:
|
||||
|
||||
|
||||
@@ -4,6 +4,11 @@
|
||||
Demo Online Engine
|
||||
==================
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.demo_online
|
||||
:members:
|
||||
|
||||
|
||||
@@ -4,6 +4,11 @@
|
||||
Engine Overview
|
||||
===============
|
||||
|
||||
.. contents::
|
||||
:depth: 3
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. _metasearch-engine: https://en.wikipedia.org/wiki/Metasearch_engine
|
||||
|
||||
.. sidebar:: Further reading ..
|
||||
|
||||
@@ -4,6 +4,12 @@
|
||||
Engine Implementations
|
||||
======================
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
|
||||
.. toctree::
|
||||
:caption: Framework Components
|
||||
:maxdepth: 2
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
JSON Engine
|
||||
============
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.json_engine
|
||||
:members:
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
MediaWiki Engine
|
||||
================
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.mediawiki
|
||||
:members:
|
||||
|
||||
@@ -9,6 +9,11 @@ Command Line Engines
|
||||
- :origin:`command.py <searx/engines/command.py>`
|
||||
- :ref:`offline engines`
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. sidebar:: info
|
||||
|
||||
Initial sponsored by `Search and Discovery Fund
|
||||
|
||||
@@ -6,16 +6,21 @@ NoSQL databases
|
||||
|
||||
.. sidebar:: further read
|
||||
|
||||
- `NoSQL database <https://en.wikipedia.org/wiki/NoSQL>`_
|
||||
- `NoSQL databases <https://en.wikipedia.org/wiki/NoSQL>`_
|
||||
- `valkey.io <https://valkey.io/>`_
|
||||
- `MongoDB <https://www.mongodb.com>`_
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. sidebar:: info
|
||||
|
||||
Initial sponsored by `Search and Discovery Fund
|
||||
<https://nlnet.nl/discovery>`_ of `NLnet Foundation <https://nlnet.nl/>`_.
|
||||
|
||||
The following `NoSQL database`_ are supported:
|
||||
The following `NoSQL databases`_ are supported:
|
||||
|
||||
- :ref:`engine valkey_server`
|
||||
- :ref:`engine mongodb`
|
||||
@@ -52,7 +57,7 @@ instance. To switch into the environment (:ref:`searxng-src`) you can use
|
||||
Configure the engines
|
||||
=====================
|
||||
|
||||
`NoSQL database`_ are used for storing arbitrary data without first defining
|
||||
`NoSQL databases`_ are used for storing arbitrary data without first defining
|
||||
their structure.
|
||||
|
||||
|
||||
@@ -70,13 +75,13 @@ Valkey Server
|
||||
- :origin:`valkey_server.py <searx/engines/valkey_server.py>`
|
||||
|
||||
.. automodule:: searx.engines.valkey_server
|
||||
:members:
|
||||
:members:
|
||||
|
||||
|
||||
.. _engine mongodb:
|
||||
|
||||
MongoDB / PyMongo
|
||||
-----------------
|
||||
MongoDB
|
||||
-------
|
||||
|
||||
.. _pymongo: https://github.com/mongodb/mongo-python-driver#installation
|
||||
|
||||
@@ -88,4 +93,4 @@ MongoDB / PyMongo
|
||||
|
||||
|
||||
.. automodule:: searx.engines.mongodb
|
||||
:members:
|
||||
:members:
|
||||
|
||||
@@ -7,6 +7,11 @@ Local Search APIs
|
||||
- `Comparison to alternatives
|
||||
<https://docs.meilisearch.com/learn/what_is_meilisearch/comparison_to_alternatives.html>`_
|
||||
|
||||
.. contents::
|
||||
:depth: 1
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. sidebar:: info
|
||||
|
||||
Initial sponsored by `Search and Discovery Fund
|
||||
@@ -32,8 +37,8 @@ in section :ref:`private engines`.
|
||||
|
||||
.. _engine meilisearch:
|
||||
|
||||
MeiliSearch Engine
|
||||
==================
|
||||
MeiliSearch
|
||||
===========
|
||||
|
||||
.. automodule:: searx.engines.meilisearch
|
||||
:members:
|
||||
@@ -41,16 +46,17 @@ MeiliSearch Engine
|
||||
|
||||
.. _engine elasticsearch:
|
||||
|
||||
Elasticsearch Engine
|
||||
====================
|
||||
Elasticsearch
|
||||
=============
|
||||
|
||||
.. automodule:: searx.engines.elasticsearch
|
||||
:members:
|
||||
|
||||
.. _engine solr:
|
||||
|
||||
Solr Engine
|
||||
===========
|
||||
Solr
|
||||
====
|
||||
|
||||
.. automodule:: searx.engines.solr
|
||||
:members:
|
||||
|
||||
|
||||
@@ -10,6 +10,11 @@ SQL Engines
|
||||
- `PostgreSQL <https://www.postgresql.org>`_
|
||||
- `MySQL <https://www.mysql.com>`_
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. sidebar:: info
|
||||
|
||||
Initial sponsored by `Search and Discovery Fund
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
Adobe Stock
|
||||
===========
|
||||
|
||||
.. contents:: Contents
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.adobe_stock
|
||||
:members:
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
Alpine Linux Packages
|
||||
=====================
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.alpinelinux
|
||||
:members:
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
Anna's Archive
|
||||
==============
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.annas_archive
|
||||
:members:
|
||||
|
||||
@@ -4,6 +4,11 @@
|
||||
Arch Linux
|
||||
==========
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.archlinux
|
||||
:members:
|
||||
|
||||
|
||||
@@ -4,6 +4,12 @@
|
||||
Bing Engines
|
||||
============
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
|
||||
.. _bing web engine:
|
||||
|
||||
Bing WEB
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
Bpb
|
||||
===
|
||||
|
||||
.. contents:: Contents
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.bpb
|
||||
:members:
|
||||
|
||||
@@ -2,6 +2,11 @@
|
||||
Brave Engines
|
||||
=============
|
||||
|
||||
.. contents:: Contents
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
Brave offers two different engines for SearXNG:
|
||||
|
||||
1. The standard engine (``brave``) uses the web interface.
|
||||
|
||||
@@ -4,6 +4,11 @@
|
||||
BT4G
|
||||
====
|
||||
|
||||
.. contents:: Contents
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.bt4g
|
||||
:members:
|
||||
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
CORE
|
||||
====
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.core
|
||||
:members:
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
Dailymotion
|
||||
===========
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.dailymotion
|
||||
:members:
|
||||
|
||||
@@ -4,6 +4,11 @@
|
||||
DuckDuckGo Engines
|
||||
==================
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.duckduckgo
|
||||
:members:
|
||||
|
||||
|
||||
@@ -4,6 +4,12 @@
|
||||
Google Engines
|
||||
==============
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
|
||||
.. _google API:
|
||||
|
||||
Google API
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
Lemmy
|
||||
=====
|
||||
|
||||
.. contents:: Contents
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.lemmy
|
||||
:members:
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
Library of Congress
|
||||
===================
|
||||
|
||||
.. contents:: Contents
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.loc
|
||||
:members:
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
Mastodon
|
||||
========
|
||||
|
||||
.. contents:: Contents
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.mastodon
|
||||
:members:
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
Moviepilot
|
||||
==========
|
||||
|
||||
.. contents:: Contents
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.moviepilot
|
||||
:members:
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
Matrix Rooms Search (MRS)
|
||||
=========================
|
||||
|
||||
.. contents:: Contents
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.mrs
|
||||
:members:
|
||||
|
||||
@@ -4,6 +4,12 @@
|
||||
Mwmbl Engine
|
||||
============
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
|
||||
.. _mwmbl web engine:
|
||||
|
||||
Mwmbl WEB
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
Odysee
|
||||
======
|
||||
|
||||
.. contents:: Contents
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.odysee
|
||||
:members:
|
||||
|
||||
@@ -4,6 +4,12 @@
|
||||
Peertube Engines
|
||||
================
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
|
||||
.. _peertube video engine:
|
||||
|
||||
Peertube Video
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
Piped
|
||||
=====
|
||||
|
||||
.. contents:: Contents
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.piped
|
||||
:members:
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
Presearch Engine
|
||||
================
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.presearch
|
||||
:members:
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
Qwant
|
||||
=====
|
||||
|
||||
.. contents:: Contents
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.qwant
|
||||
:members:
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
RadioBrowser
|
||||
============
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.radio_browser
|
||||
:members:
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
Recoll Engine
|
||||
=============
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.recoll
|
||||
:members:
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
Soundcloud
|
||||
==========
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.soundcloud
|
||||
:members:
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
Startpage Engines
|
||||
=================
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.startpage
|
||||
:members:
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
Tagesschau API
|
||||
==============
|
||||
|
||||
.. contents:: Contents
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.tagesschau
|
||||
:members:
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
Torznab WebAPI
|
||||
==============
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.torznab
|
||||
:members:
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
Void Linux binary packages
|
||||
==========================
|
||||
|
||||
.. contents:: Contents
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.voidlinux
|
||||
:members:
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
Wallhaven
|
||||
=========
|
||||
|
||||
.. contents:: Contents
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.wallhaven
|
||||
:members:
|
||||
|
||||
@@ -4,6 +4,12 @@
|
||||
Wikimedia
|
||||
=========
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
|
||||
.. _wikipedia engine:
|
||||
|
||||
Wikipedia
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
Yacy
|
||||
====
|
||||
|
||||
.. contents:: Contents
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.yacy
|
||||
:members:
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
Yahoo Engine
|
||||
============
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.yahoo
|
||||
:members:
|
||||
|
||||
@@ -4,5 +4,10 @@
|
||||
Z-Library
|
||||
=========
|
||||
|
||||
.. contents:: Contents
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.zlibrary
|
||||
:members:
|
||||
|
||||
@@ -4,6 +4,11 @@
|
||||
Tineye
|
||||
======
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.tineye
|
||||
:members:
|
||||
|
||||
|
||||
@@ -4,6 +4,11 @@
|
||||
XPath Engine
|
||||
============
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.engines.xpath
|
||||
:members:
|
||||
|
||||
|
||||
@@ -19,6 +19,11 @@ Makefiles, we recommend to read gnu-make_ introduction.
|
||||
To install developer requirements follow :ref:`buildhosts`.
|
||||
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
The usage is simple, just type ``make {target-name}`` to *build* a target.
|
||||
Calling the ``help`` target gives a first overview (``make help``):
|
||||
|
||||
|
||||
@@ -36,6 +36,12 @@ docs.live <make docs.live>` to build HTML while editing.
|
||||
- SVG_, ImageMagick_
|
||||
- DOT_, `Graphviz's dot`_, Graphviz_
|
||||
|
||||
|
||||
.. contents::
|
||||
:depth: 3
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
Sphinx_ and reST_ have their place in the python ecosystem. Over that reST is
|
||||
used in popular projects, e.g the Linux kernel documentation `[kernel doc]`_.
|
||||
|
||||
|
||||
@@ -14,6 +14,11 @@ type of a result is defined by the :py:obj:`result_type.Result.template`. To
|
||||
set another media-type as :ref:`template default`, the field ``template``
|
||||
in the result item must be set to the desired type.
|
||||
|
||||
.. contents:: Contents
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
|
||||
.. _result template macros:
|
||||
|
||||
|
||||
@@ -7,6 +7,11 @@ Why use a private instance?
|
||||
\.\.\.is a common question among SearXNG users. Before answering this
|
||||
question, see what options a SearXNG user has.
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
Public instances are open to everyone who has access to their URL. Usually, they
|
||||
are operated by unknown parties (from the users' point of view). Private
|
||||
instances can be used by a select group of people, such as a SearXNG instance for a
|
||||
|
||||
@@ -4,6 +4,11 @@
|
||||
Bot Detection
|
||||
=============
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.botdetection
|
||||
:members:
|
||||
|
||||
|
||||
@@ -4,6 +4,11 @@
|
||||
Favicons (source)
|
||||
=================
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.favicons
|
||||
:members:
|
||||
|
||||
@@ -38,3 +43,6 @@ Favicons Cache
|
||||
|
||||
.. automodule:: searx.favicons.cache
|
||||
:members:
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -4,6 +4,11 @@
|
||||
Locales
|
||||
=======
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. automodule:: searx.locales
|
||||
:members:
|
||||
|
||||
|
||||
@@ -4,6 +4,12 @@
|
||||
Search processors
|
||||
=================
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
|
||||
Abstract processor class
|
||||
========================
|
||||
|
||||
|
||||
@@ -22,6 +22,11 @@ Configured Engines
|
||||
called *tabs*), engines can be queried by their name or the categories they
|
||||
belong to, by using a :ref:`\!bing syntax <search-syntax>`.
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. jinja:: searx
|
||||
|
||||
{% for category, engines in categories_as_tabs.items() %}
|
||||
|
||||
@@ -2,6 +2,11 @@
|
||||
User information
|
||||
================
|
||||
|
||||
.. contents::
|
||||
:depth: 3
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
|
||||
@@ -15,6 +15,12 @@ script :origin:`utils/searxng.sh`.
|
||||
- :ref:`installation nginx`
|
||||
- :ref:`installation apache`
|
||||
|
||||
.. contents::
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: entry
|
||||
|
||||
|
||||
Install
|
||||
=======
|
||||
|
||||
|
||||
@@ -5,24 +5,22 @@ black==25.9.0
|
||||
pylint==4.0.5
|
||||
splinter==0.21.0
|
||||
selenium==4.43.0
|
||||
Sphinx==8.2.3;python_version <= "3.11"
|
||||
Sphinx==9.1.0; python_version > "3.11"
|
||||
Pallets-Sphinx-Themes==2.5.0
|
||||
Sphinx==8.2.3
|
||||
sphinx-issues==6.0.0
|
||||
sphinx-jinja==2.0.2
|
||||
sphinx-tabs==3.5.0
|
||||
furo==2025.12.19
|
||||
sphinxcontrib-programoutput==0.19
|
||||
sphinx-autobuild==2025.8.25
|
||||
sphinx-notfound-page==1.1.0
|
||||
myst-parser==5.0.0
|
||||
linuxdoc==20260504
|
||||
linuxdoc==20240924
|
||||
aiounittest==1.5.0
|
||||
yamllint==1.38.0
|
||||
wlc==2.0.0
|
||||
wlc==1.17.2
|
||||
coloredlogs==15.0.1
|
||||
docutils>=0.21.2;python_version <= "3.11"
|
||||
docutils>=0.22.4; python_version > "3.11"
|
||||
docutils>=0.21.2
|
||||
parameterized==0.9.0
|
||||
granian[reload]==2.7.4
|
||||
basedpyright==1.39.3
|
||||
granian[reload]==2.7.3
|
||||
basedpyright==1.39.2
|
||||
types-lxml==2026.2.16
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
granian==2.7.4
|
||||
granian[pname]==2.7.4
|
||||
granian==2.7.3
|
||||
granian[pname]==2.7.3
|
||||
|
||||
+3
-3
@@ -1,9 +1,9 @@
|
||||
certifi==2026.4.22
|
||||
certifi==2026.2.25
|
||||
babel==2.18.0
|
||||
flask-babel==4.0.0
|
||||
flask==3.1.3
|
||||
jinja2==3.1.6
|
||||
lxml==6.1.0
|
||||
lxml==6.0.4
|
||||
pygments==2.20.0
|
||||
python-dateutil==2.9.0.post0
|
||||
pyyaml==6.0.3
|
||||
@@ -13,7 +13,7 @@ sniffio==1.3.1
|
||||
valkey==6.1.1
|
||||
markdown-it-py==4.0.0
|
||||
msgspec==0.21.1
|
||||
typer==0.25.1
|
||||
typer==0.24.1
|
||||
isodate==0.7.2
|
||||
whitenoise==6.12.0
|
||||
typing-extensions==4.15.0
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+27
-34
@@ -33,7 +33,7 @@
|
||||
"pa": "ਚੈੱਕ ਕੋਰੂਨਾ",
|
||||
"pl": "korona czeska",
|
||||
"pt": "coroa checa",
|
||||
"ro": "coroană cehă",
|
||||
"ro": "Coroană cehă",
|
||||
"ru": "чешская крона",
|
||||
"sk": "česká koruna",
|
||||
"sl": "češka krona",
|
||||
@@ -1164,7 +1164,7 @@
|
||||
"pa": "ਸਵਿੱਸ ਫ਼ਰਾਂਕ",
|
||||
"pl": "frank szwajcarski",
|
||||
"pt": "Franco suíço",
|
||||
"ro": "franc elvețian",
|
||||
"ro": "Franc elvețian",
|
||||
"ru": "швейцарский франк",
|
||||
"sk": "Švajčiarsky frank",
|
||||
"sl": "švicarski frank",
|
||||
@@ -1484,7 +1484,7 @@
|
||||
"pa": "ਚੈੱਕ ਕੋਰੂਨਾ",
|
||||
"pl": "korona czeska",
|
||||
"pt": "coroa checa",
|
||||
"ro": "coroană cehă",
|
||||
"ro": "Coroană cehă",
|
||||
"ru": "чешская крона",
|
||||
"sk": "česká koruna",
|
||||
"sl": "češka krona",
|
||||
@@ -1807,7 +1807,7 @@
|
||||
"pap": "Euro",
|
||||
"pl": "euro",
|
||||
"pt": "Euro",
|
||||
"ro": "euro",
|
||||
"ro": "Euro",
|
||||
"ru": "евро",
|
||||
"sk": "euro",
|
||||
"sl": "evro",
|
||||
@@ -1941,7 +1941,7 @@
|
||||
"tr": "İngiliz sterlini",
|
||||
"tt": "стерлинг фунты",
|
||||
"uk": "фунт стерлінгів",
|
||||
"vi": "bảng Anh"
|
||||
"vi": "Bảng Anh"
|
||||
},
|
||||
"GEL": {
|
||||
"ar": "لاري جورجي",
|
||||
@@ -2627,7 +2627,7 @@
|
||||
"pa": "ਆਈਸਲੈਂਡੀ ਕਰੋਨਾ",
|
||||
"pl": "Korona islandzka",
|
||||
"pt": "coroa islandesa",
|
||||
"ro": "coroană islandeză",
|
||||
"ro": "Coroană islandeză",
|
||||
"ru": "исландская крона",
|
||||
"sk": "Islandská koruna",
|
||||
"sl": "islandska krona",
|
||||
@@ -2827,7 +2827,7 @@
|
||||
"pa": "ਕਿਰਗਿਜ਼ਸਤਾਨੀ ਸੋਮ",
|
||||
"pl": "som",
|
||||
"pt": "som",
|
||||
"ro": "som",
|
||||
"ro": "som kîrgîz",
|
||||
"ru": "киргизский сом",
|
||||
"sk": "kyrgyzský som",
|
||||
"sl": "kirgiški som",
|
||||
@@ -3516,7 +3516,6 @@
|
||||
"en": "kyat",
|
||||
"eo": "birma kjato",
|
||||
"es": "Kyat birmano",
|
||||
"eu": "kyat",
|
||||
"fi": "Myanmarin kyat",
|
||||
"fr": "Kyat",
|
||||
"ga": "kyat Mhaenmar",
|
||||
@@ -3577,7 +3576,7 @@
|
||||
"sk": "Mongolský tugrik",
|
||||
"sl": "tugrik",
|
||||
"sr": "монголски тугрик",
|
||||
"sv": "mongolisk tögrög",
|
||||
"sv": "Mongolisk Tögrög",
|
||||
"th": "ทูกรีก",
|
||||
"tr": "Tögrög",
|
||||
"tt": "төгрөг",
|
||||
@@ -4128,7 +4127,7 @@
|
||||
"oc": "Dolar neozelandés",
|
||||
"pl": "dolar nowozelandzki",
|
||||
"pt": "dólar neozelandês",
|
||||
"ro": "dolar neozeelandez",
|
||||
"ro": "Dolar neozeelandez",
|
||||
"ru": "новозеландский доллар",
|
||||
"sk": "Novozélandský dolár",
|
||||
"sl": "novozelandski dolar",
|
||||
@@ -4227,7 +4226,7 @@
|
||||
"es": "sol",
|
||||
"eu": "Sol",
|
||||
"fi": "Perun nuevo sol",
|
||||
"fr": "sol",
|
||||
"fr": "nouveau sol",
|
||||
"ga": "nuevo sol Pheiriú",
|
||||
"gl": "Nuevo sol",
|
||||
"he": "סול",
|
||||
@@ -4235,7 +4234,7 @@
|
||||
"hu": "perui új sol",
|
||||
"id": "Nuevo Sol",
|
||||
"it": "Nuevo Sol peruviano",
|
||||
"ja": "ソル",
|
||||
"ja": "ヌエボ・ソル",
|
||||
"ko": "페루 솔",
|
||||
"lt": "Naujasis solis",
|
||||
"lv": "Peru sols",
|
||||
@@ -4527,7 +4526,7 @@
|
||||
"nl": "Qatarese rial",
|
||||
"oc": "Riyal qatarita",
|
||||
"pa": "ਕਤਰੀ ਰਿਆਲ",
|
||||
"pl": "Rial katarski",
|
||||
"pl": "Rial Kataru",
|
||||
"pt": "Rial catarense",
|
||||
"ru": "катарский риал",
|
||||
"sk": "katarský rijál",
|
||||
@@ -5572,7 +5571,6 @@
|
||||
"en": "Tanzanian shilling",
|
||||
"eo": "tanzania ŝilingo",
|
||||
"es": "chelín tanzano",
|
||||
"eu": "Txelin tanzaniar",
|
||||
"fi": "Tansanian šillinki",
|
||||
"fr": "shilling tanzanien",
|
||||
"ga": "scilling na Tansáine",
|
||||
@@ -5816,8 +5814,8 @@
|
||||
"uk": "узбецький сом"
|
||||
},
|
||||
"VED": {
|
||||
"en": "digital bolívar",
|
||||
"es": "bolívar digital",
|
||||
"en": "Digital bolívar",
|
||||
"es": "Bolívar digital",
|
||||
"fr": "bolivar numérique",
|
||||
"pt": "Bolívar digital",
|
||||
"ro": "Bolivar digital"
|
||||
@@ -6578,7 +6576,7 @@
|
||||
"Rs": "LKR",
|
||||
"R₣": "RWF",
|
||||
"S$": "SGD",
|
||||
"S/": "PEN",
|
||||
"S/.": "PEN",
|
||||
"SI$": "SBD",
|
||||
"SM": "TJS",
|
||||
"SR": "SAR",
|
||||
@@ -8733,6 +8731,7 @@
|
||||
"franc djiboutià": "DJF",
|
||||
"franc djiboutien": "DJF",
|
||||
"franc elvețian": "CHF",
|
||||
"franc elveţian": "CHF",
|
||||
"franc guinea": "GNF",
|
||||
"franc guinean": "GNF",
|
||||
"franc guineà": "GNF",
|
||||
@@ -8760,7 +8759,6 @@
|
||||
"franc switze": "CHF",
|
||||
"franc thụy sĩ": "CHF",
|
||||
"franchi svizzeri": "CHF",
|
||||
"franci elvețieni": "CHF",
|
||||
"franco": [
|
||||
"XPF",
|
||||
"XAF",
|
||||
@@ -9725,13 +9723,11 @@
|
||||
"kwd": "KWD",
|
||||
"kwt": "KWD",
|
||||
"kyat": "MMK",
|
||||
"kyat birmaniar": "MMK",
|
||||
"kyat birmano": "MMK",
|
||||
"kyat birmà": "MMK",
|
||||
"kyat mhaenmar": "MMK",
|
||||
"kyat myanma": "MMK",
|
||||
"kyat myanmar": "MMK",
|
||||
"kyat myanmartar": "MMK",
|
||||
"kyd": "KYD",
|
||||
"kyrgyz som": "KGS",
|
||||
"kyrgyzský som": "KGS",
|
||||
@@ -11152,7 +11148,6 @@
|
||||
"pyg": "PYG",
|
||||
"pумънски лей": "RON",
|
||||
"pумынский лей": "RON",
|
||||
"q8146": "JPY",
|
||||
"qar": "QAR",
|
||||
"qatar riyal": "QAR",
|
||||
"qatarese rial": "QAR",
|
||||
@@ -11264,6 +11259,7 @@
|
||||
"rial irański": "IRR",
|
||||
"rial jemeński": "YER",
|
||||
"rial katarski": "QAR",
|
||||
"rial kataru": "QAR",
|
||||
"rial na hiaráine": "IRR",
|
||||
"rial oman": "OMR",
|
||||
"rial omanais": "OMR",
|
||||
@@ -11836,7 +11832,6 @@
|
||||
"sol peruano": "PEN",
|
||||
"sol peruviano": "PEN",
|
||||
"sol perú": "PEN",
|
||||
"sol péruvien": "PEN",
|
||||
"solomon adaları doları": "SBD",
|
||||
"solomon dollar": "SBD",
|
||||
"solomon islands dollar": "SBD",
|
||||
@@ -11851,7 +11846,6 @@
|
||||
"som de l'uzbekistan": "UZS",
|
||||
"som del kirguizistan": "KGS",
|
||||
"som do quirguistão": "KGS",
|
||||
"som kârgâz": "KGS",
|
||||
"som kirghiso": "KGS",
|
||||
"som kirghiz": "KGS",
|
||||
"som kirghizo": "KGS",
|
||||
@@ -12160,7 +12154,6 @@
|
||||
"INR",
|
||||
"BDT"
|
||||
],
|
||||
"taka 12272": "BDT",
|
||||
"taka bangladese": "BDT",
|
||||
"taka bangladesh": "BDT",
|
||||
"taka bangladeshi": "BDT",
|
||||
@@ -12426,7 +12419,6 @@
|
||||
"CZK",
|
||||
"203"
|
||||
],
|
||||
"txelin tanzaniar": "TZS",
|
||||
"tyrkisk lira": "TRY",
|
||||
"tzs": "TZS",
|
||||
"ṭākā": "BDT",
|
||||
@@ -12528,6 +12520,7 @@
|
||||
"uruguayischer peso": "UYU",
|
||||
"uruguayn peso": "UYU",
|
||||
"uruguayské peso": "UYU",
|
||||
"uruguyansk peso": "UYU",
|
||||
"urugvaja peso": "UYU",
|
||||
"urugvajaus pesas": "UYU",
|
||||
"urugvajski peso": "UYU",
|
||||
@@ -15731,7 +15724,6 @@
|
||||
"지부티프랑": "DJF",
|
||||
"지브롤터 파운드": "GIP",
|
||||
"짐바브웨 골드": "ZWG",
|
||||
"짐바브웨 달러": "ZWL",
|
||||
"짯": "MMK",
|
||||
"챠트": "MMK",
|
||||
"체코 코루나": [
|
||||
@@ -15829,7 +15821,10 @@
|
||||
"STN",
|
||||
"CRC"
|
||||
],
|
||||
"₣": "XPF",
|
||||
"₣": [
|
||||
"XPF",
|
||||
"RWF"
|
||||
],
|
||||
"₤": "GBP",
|
||||
"₦": "NGN",
|
||||
"₨": [
|
||||
@@ -15862,9 +15857,6 @@
|
||||
"⃀": "KGS",
|
||||
"": "SAR",
|
||||
"": "MVR",
|
||||
"": "AED",
|
||||
"": "OMR",
|
||||
"": "BYN",
|
||||
"〒": "KZT",
|
||||
"アイスランドクローナ": "ISK",
|
||||
"アイスランド・クローナ": "ISK",
|
||||
@@ -16006,7 +15998,6 @@
|
||||
"ソマリア・シリング": "SOS",
|
||||
"ソム": "KGS",
|
||||
"ソモニ": "TJS",
|
||||
"ソル": "PEN",
|
||||
"ソロモン諸島ドル": "SBD",
|
||||
"ソロモン諸島・ドル": "SBD",
|
||||
"ダラシ": "GMD",
|
||||
@@ -16198,8 +16189,10 @@
|
||||
"香港ドル": "HKD",
|
||||
"香港・ドル": "HKD",
|
||||
"香港元": "HKD",
|
||||
"﷼": "IRR",
|
||||
"﷼'": "YER",
|
||||
"💶": "EUR"
|
||||
"﷼": [
|
||||
"YER",
|
||||
"IRR"
|
||||
],
|
||||
"﷼'": "YER"
|
||||
}
|
||||
}
|
||||
+1328
-2654
File diff suppressed because it is too large
Load Diff
@@ -7280,7 +7280,6 @@
|
||||
"hu": "hungarian",
|
||||
"hy": "armenian",
|
||||
"id": "indonesian",
|
||||
"ig": "igbo",
|
||||
"is": "icelandic",
|
||||
"it": "italian",
|
||||
"ja": "japanese",
|
||||
@@ -7336,7 +7335,6 @@
|
||||
"ta": "tamil",
|
||||
"te": "telugu",
|
||||
"th": "thai",
|
||||
"ti": "tigrinya",
|
||||
"tk": "turkmen",
|
||||
"tr": "turkish",
|
||||
"tt": "tatar",
|
||||
@@ -7344,7 +7342,6 @@
|
||||
"ur": "urdu",
|
||||
"uz": "uzbek",
|
||||
"vi": "vietnamese",
|
||||
"wo": "wolof",
|
||||
"xh": "xhosa",
|
||||
"yi": "yiddish",
|
||||
"yo": "yoruba",
|
||||
|
||||
+3876
-3876
File diff suppressed because it is too large
Load Diff
+2661
-2286
File diff suppressed because it is too large
Load Diff
@@ -5,7 +5,7 @@
|
||||
],
|
||||
"ua": "Mozilla/5.0 ({os}; rv:{version}) Gecko/20100101 Firefox/{version}",
|
||||
"versions": [
|
||||
"150.0",
|
||||
"149.0"
|
||||
"149.0",
|
||||
"148.0"
|
||||
]
|
||||
}
|
||||
+158
-333
@@ -194,11 +194,6 @@
|
||||
"symbol": "cm⁻³",
|
||||
"to_si_factor": 1000000.0
|
||||
},
|
||||
"Q102129592": {
|
||||
"si_name": "Q6137407",
|
||||
"symbol": "d⁻¹",
|
||||
"to_si_factor": 1.15741e-05
|
||||
},
|
||||
"Q102130673": {
|
||||
"si_name": "Q182429",
|
||||
"symbol": "ym/s",
|
||||
@@ -434,11 +429,6 @@
|
||||
"symbol": "mtpa",
|
||||
"to_si_factor": 31.709791984
|
||||
},
|
||||
"Q104381302": {
|
||||
"si_name": "Q104381302",
|
||||
"symbol": "W/m³",
|
||||
"to_si_factor": 1.0
|
||||
},
|
||||
"Q104628312": {
|
||||
"si_name": "Q25269",
|
||||
"symbol": "vars",
|
||||
@@ -1509,6 +1499,11 @@
|
||||
"symbol": "kg m²/(s² K)",
|
||||
"to_si_factor": 1.0
|
||||
},
|
||||
"Q106725578": {
|
||||
"si_name": "Q106725578",
|
||||
"symbol": "m²/(s² K)",
|
||||
"to_si_factor": 1.0
|
||||
},
|
||||
"Q106740890": {
|
||||
"si_name": "Q106740890",
|
||||
"symbol": "m²/s²",
|
||||
@@ -1659,6 +1654,11 @@
|
||||
"symbol": "N/mm",
|
||||
"to_si_factor": 1000.0
|
||||
},
|
||||
"Q106886424": {
|
||||
"si_name": "Q215571",
|
||||
"symbol": "kgf m",
|
||||
"to_si_factor": 9.80665
|
||||
},
|
||||
"Q106886632": {
|
||||
"si_name": "Q44395",
|
||||
"symbol": "hbar",
|
||||
@@ -1764,16 +1764,6 @@
|
||||
"symbol": "kg/(m⁴ s)",
|
||||
"to_si_factor": 1.0
|
||||
},
|
||||
"Q107059005": {
|
||||
"si_name": "Q69425409",
|
||||
"symbol": "A h/dm³",
|
||||
"to_si_factor": 3600000.0
|
||||
},
|
||||
"Q107059365": {
|
||||
"si_name": "Q97541209",
|
||||
"symbol": "A h/kg",
|
||||
"to_si_factor": 3600.0
|
||||
},
|
||||
"Q107095937": {
|
||||
"si_name": "Q107095937",
|
||||
"symbol": "kg m²/(s² mol)",
|
||||
@@ -2084,11 +2074,6 @@
|
||||
"symbol": "rem/s",
|
||||
"to_si_factor": 0.01
|
||||
},
|
||||
"Q107378429": {
|
||||
"si_name": "Q11547252",
|
||||
"symbol": "1/in²",
|
||||
"to_si_factor": 1550.0
|
||||
},
|
||||
"Q107378436": {
|
||||
"si_name": "Q11547251",
|
||||
"symbol": "Å⁻¹",
|
||||
@@ -2294,11 +2279,6 @@
|
||||
"symbol": "b/sr",
|
||||
"to_si_factor": 1e-28
|
||||
},
|
||||
"Q107611142": {
|
||||
"si_name": "Q98267267",
|
||||
"symbol": "b/eV",
|
||||
"to_si_factor": 6.24151e-10
|
||||
},
|
||||
"Q107611199": {
|
||||
"si_name": "Q98267267",
|
||||
"symbol": "cm²/erg",
|
||||
@@ -2314,96 +2294,11 @@
|
||||
"symbol": "cm²/(sr erg)",
|
||||
"to_si_factor": 1000.0
|
||||
},
|
||||
"Q107821494": {
|
||||
"si_name": null,
|
||||
"symbol": "bit/m³",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q107822428": {
|
||||
"si_name": null,
|
||||
"symbol": "bit/m",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q107824325": {
|
||||
"si_name": null,
|
||||
"symbol": "bit/m²",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q107862770": {
|
||||
"si_name": null,
|
||||
"symbol": "Kibit/m",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q107862783": {
|
||||
"si_name": null,
|
||||
"symbol": "Kibit/m",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q107862850": {
|
||||
"si_name": null,
|
||||
"symbol": "Kibit/m³",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q107862870": {
|
||||
"si_name": null,
|
||||
"symbol": "Mibit/m",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q107862884": {
|
||||
"si_name": null,
|
||||
"symbol": "Mibit/m²",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q107862898": {
|
||||
"si_name": null,
|
||||
"symbol": "Mibit/m³",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q107970215": {
|
||||
"si_name": null,
|
||||
"symbol": "Pibit/m",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q107970224": {
|
||||
"si_name": null,
|
||||
"symbol": "Pibit/m²",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q107970230": {
|
||||
"si_name": null,
|
||||
"symbol": "Pibit/m³",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q107970235": {
|
||||
"si_name": null,
|
||||
"symbol": "Tibit/m",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q107970256": {
|
||||
"si_name": null,
|
||||
"symbol": "Tibit/m³",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q107970266": {
|
||||
"si_name": null,
|
||||
"symbol": "Tibit/m²",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q108270163": {
|
||||
"si_name": "Q25381181",
|
||||
"symbol": "t/a",
|
||||
"to_si_factor": 3.169e-05
|
||||
},
|
||||
"Q1084321": {
|
||||
"si_name": null,
|
||||
"symbol": "Tb/s",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q108533173": {
|
||||
"si_name": "Q108533173",
|
||||
"symbol": "sr⁻¹",
|
||||
"to_si_factor": 1.0
|
||||
},
|
||||
"Q1086691": {
|
||||
"si_name": null,
|
||||
"symbol": "fg",
|
||||
@@ -2464,11 +2359,6 @@
|
||||
"symbol": "e.u.",
|
||||
"to_si_factor": 4.184
|
||||
},
|
||||
"Q109448508": {
|
||||
"si_name": null,
|
||||
"symbol": "man-Sv",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q1098949": {
|
||||
"si_name": "Q21393312",
|
||||
"symbol": "Cl",
|
||||
@@ -2499,9 +2389,14 @@
|
||||
"symbol": "nm²",
|
||||
"to_si_factor": 1e-18
|
||||
},
|
||||
"Q111494193": {
|
||||
"si_name": "Q111494193",
|
||||
"symbol": "J/(Hz mol)",
|
||||
"Q110742003": {
|
||||
"si_name": null,
|
||||
"symbol": "dppx",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q110812007": {
|
||||
"si_name": "Q281096",
|
||||
"symbol": "nt",
|
||||
"to_si_factor": 1.0
|
||||
},
|
||||
"Q11229": {
|
||||
@@ -2549,11 +2444,6 @@
|
||||
"symbol": "Yb",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q114559346": {
|
||||
"si_name": null,
|
||||
"symbol": "g CO2e/kWh",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q114589269": {
|
||||
"si_name": null,
|
||||
"symbol": "Ѧ",
|
||||
@@ -2674,21 +2564,11 @@
|
||||
"symbol": "ʰ",
|
||||
"to_si_factor": 0.2617993878
|
||||
},
|
||||
"Q116486875": {
|
||||
"si_name": null,
|
||||
"symbol": "mol(-1) s(-1)",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q1165639": {
|
||||
"si_name": "Q89992008",
|
||||
"symbol": "daraf",
|
||||
"to_si_factor": 1.0
|
||||
},
|
||||
"Q1165725": {
|
||||
"si_name": "Q25343",
|
||||
"symbol": "D",
|
||||
"to_si_factor": 9.869e-13
|
||||
},
|
||||
"Q1165799": {
|
||||
"si_name": "Q11573",
|
||||
"symbol": "mil",
|
||||
@@ -2874,6 +2754,11 @@
|
||||
"symbol": "pc",
|
||||
"to_si_factor": 3.085677581491367e+16
|
||||
},
|
||||
"Q121960323": {
|
||||
"si_name": "Q121960323",
|
||||
"symbol": "m/m",
|
||||
"to_si_factor": 1.0
|
||||
},
|
||||
"Q121965382": {
|
||||
"si_name": "Q121965382",
|
||||
"symbol": "mol/mol",
|
||||
@@ -3094,6 +2979,26 @@
|
||||
"symbol": "QC",
|
||||
"to_si_factor": 1e+30
|
||||
},
|
||||
"Q125471199": {
|
||||
"si_name": null,
|
||||
"symbol": "r°C",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q125471200": {
|
||||
"si_name": null,
|
||||
"symbol": "q°C",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q125471246": {
|
||||
"si_name": null,
|
||||
"symbol": "R°C",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q125471247": {
|
||||
"si_name": null,
|
||||
"symbol": "Q°C",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q125471334": {
|
||||
"si_name": "Q131255",
|
||||
"symbol": "rF",
|
||||
@@ -3274,11 +3179,6 @@
|
||||
"symbol": "STf",
|
||||
"to_si_factor": 8896.443230521
|
||||
},
|
||||
"Q131966422": {
|
||||
"si_name": "Q11573",
|
||||
"symbol": "Q",
|
||||
"to_si_factor": 0.00025
|
||||
},
|
||||
"Q1322380": {
|
||||
"si_name": "Q11574",
|
||||
"symbol": "Ts",
|
||||
@@ -3374,11 +3274,6 @@
|
||||
"symbol": "kgf/cm²",
|
||||
"to_si_factor": 98066.5
|
||||
},
|
||||
"Q135964483": {
|
||||
"si_name": "Q11547252",
|
||||
"symbol": "mm⁻²",
|
||||
"to_si_factor": 1e-06
|
||||
},
|
||||
"Q136039973": {
|
||||
"si_name": null,
|
||||
"symbol": "FPS",
|
||||
@@ -3429,36 +3324,6 @@
|
||||
"symbol": "V_P",
|
||||
"to_si_factor": 1.0429e+27
|
||||
},
|
||||
"Q1386162": {
|
||||
"si_name": "Q106680668",
|
||||
"symbol": "E",
|
||||
"to_si_factor": 1e-09
|
||||
},
|
||||
"Q138847616": {
|
||||
"si_name": "Q11573",
|
||||
"symbol": "µm⁻¹",
|
||||
"to_si_factor": 1000000.0
|
||||
},
|
||||
"Q138847643": {
|
||||
"si_name": "Q11547251",
|
||||
"symbol": "nm⁻¹",
|
||||
"to_si_factor": 1000000000.0
|
||||
},
|
||||
"Q138847654": {
|
||||
"si_name": "Q11547251",
|
||||
"symbol": "pm⁻¹",
|
||||
"to_si_factor": 1000000000000.0
|
||||
},
|
||||
"Q139054848": {
|
||||
"si_name": null,
|
||||
"symbol": "A·h/m²",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q139086088": {
|
||||
"si_name": "Q69425409",
|
||||
"symbol": "A h/m³",
|
||||
"to_si_factor": 3600.0
|
||||
},
|
||||
"Q1394540": {
|
||||
"si_name": null,
|
||||
"symbol": "bm",
|
||||
@@ -3809,11 +3674,6 @@
|
||||
"symbol": "dl",
|
||||
"to_si_factor": 0.0001
|
||||
},
|
||||
"Q18379097": {
|
||||
"si_name": "Q95375885",
|
||||
"symbol": "SFU",
|
||||
"to_si_factor": 1e-22
|
||||
},
|
||||
"Q18413919": {
|
||||
"si_name": "Q182429",
|
||||
"symbol": "cm/s",
|
||||
@@ -3849,11 +3709,6 @@
|
||||
"symbol": "zs",
|
||||
"to_si_factor": 1e-21
|
||||
},
|
||||
"Q188768": {
|
||||
"si_name": null,
|
||||
"symbol": "FLOPS",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q190095": {
|
||||
"si_name": "Q190095",
|
||||
"symbol": "Gy",
|
||||
@@ -4269,11 +4124,6 @@
|
||||
"symbol": "kgf",
|
||||
"to_si_factor": 9.80665
|
||||
},
|
||||
"Q21719454": {
|
||||
"si_name": "Q21719454",
|
||||
"symbol": "m/s³",
|
||||
"to_si_factor": 1.0
|
||||
},
|
||||
"Q217208": {
|
||||
"si_name": "Q11574",
|
||||
"symbol": "a",
|
||||
@@ -4384,16 +4234,6 @@
|
||||
"symbol": "TW",
|
||||
"to_si_factor": 1000000000000.0
|
||||
},
|
||||
"Q23893259": {
|
||||
"si_name": null,
|
||||
"symbol": "1/(p y)",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q23893296": {
|
||||
"si_name": null,
|
||||
"symbol": "1/100000py",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q23925410": {
|
||||
"si_name": "Q25517",
|
||||
"symbol": "gal (UK)",
|
||||
@@ -4534,11 +4374,6 @@
|
||||
"symbol": "statΩ",
|
||||
"to_si_factor": 898755178700.0
|
||||
},
|
||||
"Q25325238": {
|
||||
"si_name": null,
|
||||
"symbol": "bhp/cm³",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q253276": {
|
||||
"si_name": "Q11573",
|
||||
"symbol": "mi",
|
||||
@@ -4884,11 +4719,6 @@
|
||||
"symbol": "g",
|
||||
"to_si_factor": 9.80665
|
||||
},
|
||||
"Q28657331": {
|
||||
"si_name": null,
|
||||
"symbol": "erg/(s cm²)",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q28683485": {
|
||||
"si_name": "Q28683485",
|
||||
"symbol": "C/kg",
|
||||
@@ -4919,11 +4749,6 @@
|
||||
"symbol": "mH",
|
||||
"to_si_factor": 0.001
|
||||
},
|
||||
"Q29463526": {
|
||||
"si_name": null,
|
||||
"symbol": "hr/yr",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q296936": {
|
||||
"si_name": "Q25269",
|
||||
"symbol": "toe",
|
||||
@@ -5144,11 +4969,6 @@
|
||||
"symbol": "μA",
|
||||
"to_si_factor": 1e-06
|
||||
},
|
||||
"Q3186734": {
|
||||
"si_name": "Q3186734",
|
||||
"symbol": "J/(m³ K)",
|
||||
"to_si_factor": 1.0
|
||||
},
|
||||
"Q31889818": {
|
||||
"si_name": "Q199",
|
||||
"symbol": "ppq",
|
||||
@@ -5159,11 +4979,6 @@
|
||||
"symbol": "kb",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q3196665": {
|
||||
"si_name": "Q215571",
|
||||
"symbol": "kgf m",
|
||||
"to_si_factor": 9.80665
|
||||
},
|
||||
"Q3207456": {
|
||||
"si_name": "Q25236",
|
||||
"symbol": "mW",
|
||||
@@ -5269,6 +5084,11 @@
|
||||
"symbol": "fL",
|
||||
"to_si_factor": 1e-18
|
||||
},
|
||||
"Q3320608": {
|
||||
"si_name": "Q25236",
|
||||
"symbol": "kW",
|
||||
"to_si_factor": 1000.0
|
||||
},
|
||||
"Q3331719": {
|
||||
"si_name": "Q25343",
|
||||
"symbol": "dma",
|
||||
@@ -5399,11 +5219,6 @@
|
||||
"symbol": "mA⋅h",
|
||||
"to_si_factor": 3.6
|
||||
},
|
||||
"Q38623562": {
|
||||
"si_name": "Q6137407",
|
||||
"symbol": "rpm",
|
||||
"to_si_factor": 0.0166667
|
||||
},
|
||||
"Q3867152": {
|
||||
"si_name": "Q1051665",
|
||||
"symbol": "ft/s²",
|
||||
@@ -5574,11 +5389,6 @@
|
||||
"symbol": "nhp",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q4346600": {
|
||||
"si_name": null,
|
||||
"symbol": "PPHPD",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q4406": {
|
||||
"si_name": null,
|
||||
"symbol": "$T",
|
||||
@@ -5759,6 +5569,11 @@
|
||||
"symbol": "Ga",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q5299480": {
|
||||
"si_name": null,
|
||||
"symbol": "DPCm",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q531": {
|
||||
"si_name": "Q11573",
|
||||
"symbol": "l.y.",
|
||||
@@ -6439,11 +6254,6 @@
|
||||
"symbol": "U/L",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q5558595": {
|
||||
"si_name": null,
|
||||
"symbol": "GFLOPS",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q55663153": {
|
||||
"si_name": "Q55663153",
|
||||
"symbol": "H/m",
|
||||
@@ -6554,11 +6364,6 @@
|
||||
"symbol": "L/kg",
|
||||
"to_si_factor": 0.001
|
||||
},
|
||||
"Q57175652": {
|
||||
"si_name": null,
|
||||
"symbol": "m3/year/individual",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q57273614": {
|
||||
"si_name": "Q182429",
|
||||
"symbol": "mm/min",
|
||||
@@ -6569,11 +6374,6 @@
|
||||
"symbol": "d",
|
||||
"to_si_factor": 86400.0
|
||||
},
|
||||
"Q57306331": {
|
||||
"si_name": "Q86200529",
|
||||
"symbol": "cm²/g",
|
||||
"to_si_factor": 0.1
|
||||
},
|
||||
"Q577": {
|
||||
"si_name": "Q11574",
|
||||
"symbol": "a",
|
||||
@@ -6824,21 +6624,6 @@
|
||||
"symbol": "UK t",
|
||||
"to_si_factor": 1016.0469088
|
||||
},
|
||||
"Q66778234": {
|
||||
"si_name": null,
|
||||
"symbol": "TFLOPS",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q66778809": {
|
||||
"si_name": null,
|
||||
"symbol": "MFLOPS",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q66778863": {
|
||||
"si_name": null,
|
||||
"symbol": "PFLOPS",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q67060736": {
|
||||
"si_name": "Q67060736",
|
||||
"symbol": "W/kg",
|
||||
@@ -7229,6 +7014,11 @@
|
||||
"symbol": "Mb/s",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q7398951": {
|
||||
"si_name": null,
|
||||
"symbol": "PPI",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q743895": {
|
||||
"si_name": "Q39369",
|
||||
"symbol": "bpm",
|
||||
@@ -7294,21 +7084,6 @@
|
||||
"symbol": "Td",
|
||||
"to_si_factor": 1e-06
|
||||
},
|
||||
"Q78053467": {
|
||||
"si_name": null,
|
||||
"symbol": "kFLOPS",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q781545": {
|
||||
"si_name": null,
|
||||
"symbol": "phon",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q78336909": {
|
||||
"si_name": "Q78336909",
|
||||
"symbol": "m³/(kg s²)",
|
||||
"to_si_factor": 1.0
|
||||
},
|
||||
"Q7854897": {
|
||||
"si_name": null,
|
||||
"symbol": "mya",
|
||||
@@ -7434,11 +7209,6 @@
|
||||
"symbol": "YiB",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q80026587": {
|
||||
"si_name": "Q6137407",
|
||||
"symbol": "km/(s Mpc)",
|
||||
"to_si_factor": 3.24078e-20
|
||||
},
|
||||
"Q80237579": {
|
||||
"si_name": "Q56023789",
|
||||
"symbol": "J/nm",
|
||||
@@ -7494,11 +7264,6 @@
|
||||
"symbol": "B/s",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q82440913": {
|
||||
"si_name": null,
|
||||
"symbol": "L/100 km",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q828224": {
|
||||
"si_name": "Q11573",
|
||||
"symbol": "km",
|
||||
@@ -7584,11 +7349,6 @@
|
||||
"symbol": "thm (US)",
|
||||
"to_si_factor": 105480400.0
|
||||
},
|
||||
"Q843877": {
|
||||
"si_name": "Q25236",
|
||||
"symbol": "L☉",
|
||||
"to_si_factor": 3.828e+26
|
||||
},
|
||||
"Q844211": {
|
||||
"si_name": "Q844211",
|
||||
"symbol": "kg/m³",
|
||||
@@ -7664,11 +7424,6 @@
|
||||
"symbol": "Pa s/m³",
|
||||
"to_si_factor": 1.0
|
||||
},
|
||||
"Q87049028": {
|
||||
"si_name": "Q87049028",
|
||||
"symbol": "N s/m",
|
||||
"to_si_factor": 1.0
|
||||
},
|
||||
"Q87051580": {
|
||||
"si_name": "Q87051580",
|
||||
"symbol": "Pa s/m",
|
||||
@@ -7809,11 +7564,6 @@
|
||||
"symbol": "J/s",
|
||||
"to_si_factor": 1.0
|
||||
},
|
||||
"Q92717607": {
|
||||
"si_name": "Q92717607",
|
||||
"symbol": "K/m",
|
||||
"to_si_factor": 1.0
|
||||
},
|
||||
"Q93318": {
|
||||
"si_name": "Q11573",
|
||||
"symbol": "M",
|
||||
@@ -7834,16 +7584,6 @@
|
||||
"symbol": "gill (UK)",
|
||||
"to_si_factor": 0.000142
|
||||
},
|
||||
"Q93868873": {
|
||||
"si_name": null,
|
||||
"symbol": "mpg",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q93871856": {
|
||||
"si_name": null,
|
||||
"symbol": "km/L",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q93947085": {
|
||||
"si_name": "Q93947085",
|
||||
"symbol": "K/Pa",
|
||||
@@ -9159,6 +8899,11 @@
|
||||
"symbol": "ET",
|
||||
"to_si_factor": 1e+18
|
||||
},
|
||||
"Q96070276": {
|
||||
"si_name": null,
|
||||
"symbol": "m°C",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q96070318": {
|
||||
"si_name": "Q177612",
|
||||
"symbol": "dsr",
|
||||
@@ -9214,6 +8959,21 @@
|
||||
"symbol": "Gsr",
|
||||
"to_si_factor": 1000000000.0
|
||||
},
|
||||
"Q96095941": {
|
||||
"si_name": null,
|
||||
"symbol": "μ°C",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q96095955": {
|
||||
"si_name": null,
|
||||
"symbol": "n°C",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q96095960": {
|
||||
"si_name": null,
|
||||
"symbol": "k°C",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q96106290": {
|
||||
"si_name": "Q177612",
|
||||
"symbol": "Tsr",
|
||||
@@ -9239,11 +8999,41 @@
|
||||
"symbol": "Ysr",
|
||||
"to_si_factor": 1e+24
|
||||
},
|
||||
"Q96106346": {
|
||||
"si_name": null,
|
||||
"symbol": "c°C",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q96106360": {
|
||||
"si_name": null,
|
||||
"symbol": "d°C",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q96106368": {
|
||||
"si_name": null,
|
||||
"symbol": "da°C",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q96106385": {
|
||||
"si_name": null,
|
||||
"symbol": "h°C",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q96106393": {
|
||||
"si_name": null,
|
||||
"symbol": "M°C",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q96192470": {
|
||||
"si_name": "Q96192470",
|
||||
"symbol": "W/m",
|
||||
"to_si_factor": 1.0
|
||||
},
|
||||
"Q96236286": {
|
||||
"si_name": null,
|
||||
"symbol": "G°C",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q96309077": {
|
||||
"si_name": "Q96309077",
|
||||
"symbol": "S m²/mol",
|
||||
@@ -9254,6 +9044,56 @@
|
||||
"symbol": "μas",
|
||||
"to_si_factor": 4.848136811095356e-12
|
||||
},
|
||||
"Q97059641": {
|
||||
"si_name": null,
|
||||
"symbol": "p°C",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q97059652": {
|
||||
"si_name": null,
|
||||
"symbol": "T°C",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q97143826": {
|
||||
"si_name": null,
|
||||
"symbol": "P°C",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q97143831": {
|
||||
"si_name": null,
|
||||
"symbol": "y°C",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q97143835": {
|
||||
"si_name": null,
|
||||
"symbol": "f°C",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q97143838": {
|
||||
"si_name": null,
|
||||
"symbol": "Z°C",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q97143842": {
|
||||
"si_name": null,
|
||||
"symbol": "E°C",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q97143843": {
|
||||
"si_name": null,
|
||||
"symbol": "z°C",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q97143849": {
|
||||
"si_name": null,
|
||||
"symbol": "Y°C",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q97143851": {
|
||||
"si_name": null,
|
||||
"symbol": "a°C",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q97540991": {
|
||||
"si_name": "Q97540991",
|
||||
"symbol": "A m²/(J s)",
|
||||
@@ -9274,11 +9114,6 @@
|
||||
"symbol": "Bq/m³",
|
||||
"to_si_factor": 1.0
|
||||
},
|
||||
"Q98103135": {
|
||||
"si_name": "Q98103135",
|
||||
"symbol": "Bq/m²",
|
||||
"to_si_factor": 1.0
|
||||
},
|
||||
"Q98266832": {
|
||||
"si_name": "Q98266832",
|
||||
"symbol": "m²/sr",
|
||||
@@ -9304,11 +9139,6 @@
|
||||
"symbol": "eV/m²",
|
||||
"to_si_factor": 1.60218e-19
|
||||
},
|
||||
"Q98635536": {
|
||||
"si_name": "Q56023789",
|
||||
"symbol": "eV/m",
|
||||
"to_si_factor": 1.602176634e-19
|
||||
},
|
||||
"Q98642859": {
|
||||
"si_name": "Q98643033",
|
||||
"symbol": "eV m²/kg",
|
||||
@@ -9339,11 +9169,6 @@
|
||||
"symbol": "m⁻³ s⁻¹",
|
||||
"to_si_factor": 1.0
|
||||
},
|
||||
"Q98974322": {
|
||||
"si_name": null,
|
||||
"symbol": "W yr/(m² kg)",
|
||||
"to_si_factor": null
|
||||
},
|
||||
"Q99476928": {
|
||||
"si_name": "Q12438",
|
||||
"symbol": "gf",
|
||||
|
||||
@@ -39,12 +39,11 @@ def response(resp):
|
||||
|
||||
for result in json_results:
|
||||
title_parts = [title['value'] for title in result['title']]
|
||||
extract_parts = [extract['value'] for extract in result.get('extract', [])]
|
||||
results.append(
|
||||
{
|
||||
'url': result['url'],
|
||||
'title': ''.join(title_parts),
|
||||
'content': ''.join(extract_parts),
|
||||
'content': result['extract'][0]['value'],
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@@ -345,10 +345,7 @@ def _get_news_result(result):
|
||||
|
||||
publishedDate = None
|
||||
if result.get("date"):
|
||||
try:
|
||||
publishedDate = datetime.fromtimestamp(int(result["date"]) / 1000)
|
||||
except (TypeError, ValueError):
|
||||
pass
|
||||
publishedDate = datetime.fromtimestamp(result["date"] / 1000)
|
||||
|
||||
thumbnailUrl = None
|
||||
if result.get("thumbnailUrl"):
|
||||
|
||||
+477
-488
File diff suppressed because it is too large
Load Diff
+52
-22
@@ -1,17 +1,10 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Yep (general, images, news)"""
|
||||
|
||||
import typing as t
|
||||
|
||||
from datetime import datetime
|
||||
from urllib.parse import urlencode
|
||||
|
||||
from searx.result_types import EngineResults
|
||||
from searx.utils import html_to_text
|
||||
|
||||
if t.TYPE_CHECKING:
|
||||
from searx.extended_types import SXNG_Response
|
||||
from searx.search.processors import OnlineParams
|
||||
|
||||
about = {
|
||||
'website': 'https://yep.com/',
|
||||
'official_api_documentation': 'https://docs.developer.yelp.com',
|
||||
@@ -21,32 +14,69 @@ about = {
|
||||
}
|
||||
|
||||
base_url = "https://api.yep.com"
|
||||
search_type = "web" # 'web', 'images', 'news'
|
||||
|
||||
safesearch = True
|
||||
safesearch_map = {0: 'off', 1: 'moderate', 2: 'strict'}
|
||||
|
||||
enable_http2 = False
|
||||
|
||||
results_per_page = 20
|
||||
|
||||
|
||||
def request(query: str, params: 'OnlineParams') -> None:
|
||||
args = {'query': query, 'safeSearch': safesearch_map[params['safesearch']], 'limit': results_per_page}
|
||||
def request(query, params):
|
||||
args = {
|
||||
'client': 'web',
|
||||
'no_correct': 'false',
|
||||
'q': query,
|
||||
'safeSearch': safesearch_map[params['safesearch']],
|
||||
'type': search_type,
|
||||
}
|
||||
params['url'] = f"{base_url}/fs/2/search?{urlencode(args)}"
|
||||
params['headers']['Referer'] = 'https://yep.com/'
|
||||
params['headers']['Origin'] = 'https://yep.com'
|
||||
return params
|
||||
|
||||
|
||||
def response(resp: 'SXNG_Response') -> EngineResults:
|
||||
res = EngineResults()
|
||||
def _web_result(result):
|
||||
return {
|
||||
'url': result['url'],
|
||||
'title': result['title'],
|
||||
'content': html_to_text(result['snippet']),
|
||||
}
|
||||
|
||||
|
||||
def _images_result(result):
|
||||
return {
|
||||
'template': 'images.html',
|
||||
'url': result['host_page'],
|
||||
'title': result.get('title', ''),
|
||||
'content': '',
|
||||
'img_src': result['image_id'],
|
||||
'thumbnail_src': result['src'],
|
||||
}
|
||||
|
||||
|
||||
def _news_result(result):
|
||||
return {
|
||||
'url': result['url'],
|
||||
'title': result['title'],
|
||||
'content': html_to_text(result['snippet']),
|
||||
'publishedDate': datetime.strptime(result['first_seen'][:19], '%Y-%m-%dT%H:%M:%S'),
|
||||
}
|
||||
|
||||
|
||||
def response(resp):
|
||||
results = []
|
||||
|
||||
for result in resp.json()[1]['results']:
|
||||
res.add(
|
||||
res.types.MainResult(
|
||||
url=result['url'],
|
||||
title=result['title'],
|
||||
content=html_to_text(result['snippet']),
|
||||
)
|
||||
)
|
||||
if search_type == "web":
|
||||
if result['type'] != 'Organic':
|
||||
continue
|
||||
results.append(_web_result(result))
|
||||
elif search_type == "images":
|
||||
results.append(_images_result(result))
|
||||
elif search_type == "news":
|
||||
results.append(_news_result(result))
|
||||
else:
|
||||
raise ValueError(f"Unsupported yep search type: {search_type}")
|
||||
|
||||
return res
|
||||
return results
|
||||
|
||||
+11
-13
@@ -32,7 +32,7 @@ import msgspec
|
||||
from searx import logger as log
|
||||
|
||||
WHITESPACE_REGEX = re.compile('( |\t|\n)+', re.M | re.U)
|
||||
UNSET = object()
|
||||
UNKNOWN = object()
|
||||
|
||||
|
||||
def _normalize_url_fields(result: "Result | LegacyResult"):
|
||||
@@ -326,13 +326,12 @@ class Result(msgspec.Struct, kw_only=True):
|
||||
|
||||
def defaults_from(self, other: "Result"):
|
||||
"""Fields not set in *self* will be updated from the field values of the
|
||||
*other*. If a field is set (exists) but contains an empty string
|
||||
or the value ``None``, it is also considered *not set*.
|
||||
*other*.
|
||||
"""
|
||||
for field_name in self.__struct_fields__:
|
||||
self_val = getattr(self, field_name, UNSET)
|
||||
other_val = getattr(other, field_name, UNSET)
|
||||
if self_val is UNSET and other_val not in (UNSET, "", None):
|
||||
self_val = getattr(self, field_name, False)
|
||||
other_val = getattr(other, field_name, False)
|
||||
if self_val:
|
||||
setattr(self, field_name, other_val)
|
||||
|
||||
|
||||
@@ -441,6 +440,8 @@ class LegacyResult(dict[str, t.Any]):
|
||||
Do not use this class in your own implementations!
|
||||
"""
|
||||
|
||||
UNSET: object = object()
|
||||
|
||||
# emulate field types from type class Result
|
||||
url: str | None
|
||||
template: str
|
||||
@@ -511,7 +512,7 @@ class LegacyResult(dict[str, t.Any]):
|
||||
)
|
||||
|
||||
def __getattr__(self, name: str, default: t.Any = UNSET) -> t.Any:
|
||||
if default == UNSET and name not in self:
|
||||
if default == self.UNSET and name not in self:
|
||||
raise AttributeError(f"LegacyResult object has no field named: {name}")
|
||||
return self[name]
|
||||
|
||||
@@ -562,12 +563,9 @@ class LegacyResult(dict[str, t.Any]):
|
||||
self.engines.add(self.engine)
|
||||
|
||||
def defaults_from(self, other: "LegacyResult"):
|
||||
# If a field is set (exists) but contains an empty string or the value
|
||||
# ``None``, it is also considered *not set*.
|
||||
for field_name, other_val in other.items():
|
||||
self_val = self.get(field_name, UNSET)
|
||||
if self_val is UNSET and other_val not in ("", UNSET):
|
||||
self[field_name] = other_val
|
||||
for k, v in other.items():
|
||||
if not self.get(k):
|
||||
self[k] = v
|
||||
|
||||
def filter_urls(self, filter_func: "Callable[[Result | LegacyResult, str, str], str | bool]"):
|
||||
"""See :py:obj:`Result.filter_urls`"""
|
||||
|
||||
+17
-1
@@ -688,6 +688,22 @@ engines:
|
||||
engine: yep
|
||||
shortcut: yep
|
||||
categories: general
|
||||
search_type: web
|
||||
timeout: 15
|
||||
disabled: true
|
||||
|
||||
- name: yep images
|
||||
engine: yep
|
||||
shortcut: yepi
|
||||
categories: images
|
||||
search_type: images
|
||||
disabled: true
|
||||
|
||||
- name: yep news
|
||||
engine: yep
|
||||
shortcut: yepn
|
||||
categories: news
|
||||
search_type: news
|
||||
disabled: true
|
||||
|
||||
- name: currency
|
||||
@@ -1213,7 +1229,7 @@ engines:
|
||||
|
||||
- name: karmasearch videos
|
||||
engine: karmasearch
|
||||
categories: [videos, web]
|
||||
categories: [general, web]
|
||||
search_type: videos
|
||||
shortcut: kav
|
||||
|
||||
|
||||
@@ -67,13 +67,3 @@
|
||||
class="checkbox-onoff"{{- ' ' -}}
|
||||
{%- if checked -%} checked{%- endif -%}/>
|
||||
{%- endmacro -%}
|
||||
|
||||
<!-- iframe that additionally sets some extra feature attrs for videos -->
|
||||
{%- macro iframe(iframe_src) -%}
|
||||
<iframe data-src="{{iframe_src}}" frameborder="0" allowfullscreen
|
||||
{% if result.parsed_url.hostname in ("www.youtube.com", ) -%}
|
||||
allow="picture-in-picture" referrerpolicy="origin"
|
||||
{%- endif -%}
|
||||
>
|
||||
</iframe>
|
||||
{%- endmacro -%}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{% from 'simple/macros.html' import iframe, result_header, result_sub_header, result_sub_footer, result_footer with context %}
|
||||
{% from 'simple/macros.html' import result_header, result_sub_header, result_sub_footer, result_footer with context %}
|
||||
|
||||
{{ result_header(result, favicons, image_proxify) -}}
|
||||
{{- result_sub_header(result) -}}
|
||||
@@ -17,7 +17,7 @@
|
||||
{{- result_sub_footer(result) -}}
|
||||
{% if result.iframe_src -%}
|
||||
<div id="result-media-{{ index }}" class="embedded-content invisible">
|
||||
{{ iframe(result.iframe_src) }}
|
||||
<iframe data-src="{{result.iframe_src}}" frameborder="0" allowfullscreen></iframe>
|
||||
</div>
|
||||
{%- endif %}
|
||||
{% if result.audio_src -%}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{% from 'simple/macros.html' import iframe, result_header, result_sub_header, result_sub_footer, result_footer with context %}
|
||||
{% from 'simple/macros.html' import result_header, result_sub_header, result_sub_footer, result_footer with context %}
|
||||
|
||||
{{ result_header(result, favicons, image_proxify) }}
|
||||
{{ result_sub_header(result) }}
|
||||
@@ -18,7 +18,11 @@
|
||||
{{- result_sub_footer(result) -}}
|
||||
{% if result.iframe_src -%}
|
||||
<div id="result-video-{{ index }}" class="embedded-video invisible">
|
||||
{{ iframe(result.iframe_src) }}
|
||||
<iframe data-src="{{result.iframe_src}}" frameborder="0" allowfullscreen
|
||||
{% if result.parsed_url.hostname in ("www.youtube.com", ) -%}
|
||||
allow="picture-in-picture" referrerpolicy="origin">
|
||||
{%- endif -%}
|
||||
</iframe>
|
||||
</div>
|
||||
{%- endif %}
|
||||
{{ result_footer(result) }}
|
||||
|
||||
Reference in New Issue
Block a user