1 Commits

Author SHA1 Message Date
searxng-bot 19cb234514 [l10n] update translations from Weblate
54de6653b - 2026-04-15 - AndersNordh <andersnordh@noreply.codeberg.org>
e410bed58 - 2026-04-15 - AndersNordh <andersnordh@noreply.codeberg.org>
2026-04-24 13:03:49 +00:00
23 changed files with 8658 additions and 9987 deletions
+8 -31
View File
@@ -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": {
+2 -2
View File
@@ -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"
}
}
+7 -7
View File
@@ -6,7 +6,7 @@ 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>`_
@@ -20,7 +20,7 @@ NoSQL databases
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`
@@ -57,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.
@@ -75,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
@@ -93,4 +93,4 @@ MongoDB / PyMongo
.. automodule:: searx.engines.mongodb
:members:
:members:
@@ -37,8 +37,8 @@ in section :ref:`private engines`.
.. _engine meilisearch:
MeiliSearch Engine
==================
MeiliSearch
===========
.. automodule:: searx.engines.meilisearch
:members:
@@ -46,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:
+6 -8
View File
@@ -6,8 +6,7 @@ pylint==4.0.5
splinter==0.21.0
selenium==4.43.0
Pallets-Sphinx-Themes==2.5.0
Sphinx==8.2.3;python_version <= "3.11"
Sphinx==9.1.0; python_version > "3.11"
Sphinx==8.2.3
sphinx-issues==6.0.0
sphinx-jinja==2.0.2
sphinx-tabs==3.5.0
@@ -15,14 +14,13 @@ 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
+2 -2
View File
@@ -1,2 +1,2 @@
granian==2.7.4
granian[pname]==2.7.4
granian==2.7.3
granian[pname]==2.7.3
+3 -3
View File
@@ -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
View File
@@ -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"
}
}
File diff suppressed because it is too large Load Diff
-3
View File
@@ -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",
File diff suppressed because it is too large Load Diff
+2661 -2286
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -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
View File
@@ -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",
+1 -2
View File
@@ -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'],
}
)
+477 -488
View File
File diff suppressed because it is too large Load Diff
+52 -22
View File
@@ -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
View File
@@ -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
View File
@@ -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
-10
View File
@@ -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) }}