mirror of
https://github.com/searxng/searxng.git
synced 2026-09-14 10:16:03 +00:00
Compare commits
11 Commits
1a16281490
...
590b211652
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
590b211652 | ||
|
|
41e3a0baa7 | ||
|
|
11204459da | ||
|
|
03787b2e5a | ||
|
|
72294a9ffa | ||
|
|
d47cf9db24 | ||
|
|
705ebe64b5 | ||
|
|
b072b0f66b | ||
|
|
4beb5523f5 | ||
|
|
54e6e2a96d | ||
|
|
abcf8ca073 |
33
client/simple/package-lock.json
generated
33
client/simple/package-lock.json
generated
@@ -21,11 +21,11 @@
|
|||||||
"ionicons": "^7.4.0",
|
"ionicons": "^7.4.0",
|
||||||
"leaflet": "^1.9.4",
|
"leaflet": "^1.9.4",
|
||||||
"less": "^4.3.0",
|
"less": "^4.3.0",
|
||||||
"less-loader": "^12.2.0",
|
"less-loader": "^12.3.0",
|
||||||
"normalize.css": "^8.0.1",
|
"normalize.css": "^8.0.1",
|
||||||
"sharp": "^0.34.1",
|
"sharp": "^0.34.1",
|
||||||
"style-loader": "^4.0.0",
|
"style-loader": "^4.0.0",
|
||||||
"stylelint": "^16.19.0",
|
"stylelint": "^16.19.1",
|
||||||
"stylelint-config-standard": "^38.0.0",
|
"stylelint-config-standard": "^38.0.0",
|
||||||
"stylelint-config-standard-less": "^3.0.1",
|
"stylelint-config-standard-less": "^3.0.1",
|
||||||
"stylelint-prettier": "^5.0.3",
|
"stylelint-prettier": "^5.0.3",
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
"vite": "^6.3.4",
|
"vite": "^6.3.4",
|
||||||
"vite-plugin-static-copy": "^2.3.1",
|
"vite-plugin-static-copy": "^2.3.1",
|
||||||
"vite-plugin-stylelint": "^6.0.0",
|
"vite-plugin-stylelint": "^6.0.0",
|
||||||
"webpack": "^5.99.6",
|
"webpack": "^5.99.7",
|
||||||
"webpack-cli": "^6.0.1"
|
"webpack-cli": "^6.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -4573,9 +4573,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/less-loader": {
|
"node_modules/less-loader": {
|
||||||
"version": "12.2.0",
|
"version": "12.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.3.0.tgz",
|
||||||
"integrity": "sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==",
|
"integrity": "sha512-0M6+uYulvYIWs52y0LqN4+QM9TqWAohYSNTo4htE8Z7Cn3G/qQMEmktfHmyJT23k+20kU9zHH2wrfFXkxNLtVw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -5748,9 +5748,9 @@
|
|||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"node_modules/schema-utils": {
|
"node_modules/schema-utils": {
|
||||||
"version": "4.3.0",
|
"version": "4.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz",
|
||||||
"integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==",
|
"integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -6098,9 +6098,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/stylelint": {
|
"node_modules/stylelint": {
|
||||||
"version": "16.19.0",
|
"version": "16.19.1",
|
||||||
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.19.0.tgz",
|
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.19.1.tgz",
|
||||||
"integrity": "sha512-BJzc5mo/ez0H/ZSl3UbxGdkK/s0kFGsF5/k6IGu4z8wJ1qp49WrOS9RxswvcN6HMirt0g/iiJqOwLHTbWv49IQ==",
|
"integrity": "sha512-C1SlPZNMKl+d/C867ZdCRthrS+6KuZ3AoGW113RZCOL0M8xOGpgx7G70wq7lFvqvm4dcfdGFVLB/mNaLFChRKw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -7004,14 +7004,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/webpack": {
|
"node_modules/webpack": {
|
||||||
"version": "5.99.6",
|
"version": "5.99.7",
|
||||||
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.6.tgz",
|
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.7.tgz",
|
||||||
"integrity": "sha512-TJOLrJ6oeccsGWPl7ujCYuc0pIq2cNsuD6GZDma8i5o5Npvcco/z+NKvZSFsP0/x6SShVb0+X2JK/JHUjKY9dQ==",
|
"integrity": "sha512-CNqKBRMQjwcmKR0idID5va1qlhrqVUKpovi+Ec79ksW8ux7iS1+A6VqzfZXgVYCFRKl7XL5ap3ZoMpwBJxcg0w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/eslint-scope": "^3.7.7",
|
"@types/eslint-scope": "^3.7.7",
|
||||||
"@types/estree": "^1.0.6",
|
"@types/estree": "^1.0.6",
|
||||||
|
"@types/json-schema": "^7.0.15",
|
||||||
"@webassemblyjs/ast": "^1.14.1",
|
"@webassemblyjs/ast": "^1.14.1",
|
||||||
"@webassemblyjs/wasm-edit": "^1.14.1",
|
"@webassemblyjs/wasm-edit": "^1.14.1",
|
||||||
"@webassemblyjs/wasm-parser": "^1.14.1",
|
"@webassemblyjs/wasm-parser": "^1.14.1",
|
||||||
@@ -7028,7 +7029,7 @@
|
|||||||
"loader-runner": "^4.2.0",
|
"loader-runner": "^4.2.0",
|
||||||
"mime-types": "^2.1.27",
|
"mime-types": "^2.1.27",
|
||||||
"neo-async": "^2.6.2",
|
"neo-async": "^2.6.2",
|
||||||
"schema-utils": "^4.3.0",
|
"schema-utils": "^4.3.2",
|
||||||
"tapable": "^2.1.1",
|
"tapable": "^2.1.1",
|
||||||
"terser-webpack-plugin": "^5.3.11",
|
"terser-webpack-plugin": "^5.3.11",
|
||||||
"watchpack": "^2.4.1",
|
"watchpack": "^2.4.1",
|
||||||
|
|||||||
@@ -19,11 +19,11 @@
|
|||||||
"ionicons": "^7.4.0",
|
"ionicons": "^7.4.0",
|
||||||
"leaflet": "^1.9.4",
|
"leaflet": "^1.9.4",
|
||||||
"less": "^4.3.0",
|
"less": "^4.3.0",
|
||||||
"less-loader": "^12.2.0",
|
"less-loader": "^12.3.0",
|
||||||
"normalize.css": "^8.0.1",
|
"normalize.css": "^8.0.1",
|
||||||
"sharp": "^0.34.1",
|
"sharp": "^0.34.1",
|
||||||
"style-loader": "^4.0.0",
|
"style-loader": "^4.0.0",
|
||||||
"stylelint": "^16.19.0",
|
"stylelint": "^16.19.1",
|
||||||
"stylelint-config-standard": "^38.0.0",
|
"stylelint-config-standard": "^38.0.0",
|
||||||
"stylelint-config-standard-less": "^3.0.1",
|
"stylelint-config-standard-less": "^3.0.1",
|
||||||
"stylelint-prettier": "^5.0.3",
|
"stylelint-prettier": "^5.0.3",
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
"vite": "^6.3.4",
|
"vite": "^6.3.4",
|
||||||
"vite-plugin-static-copy": "^2.3.1",
|
"vite-plugin-static-copy": "^2.3.1",
|
||||||
"vite-plugin-stylelint": "^6.0.0",
|
"vite-plugin-stylelint": "^6.0.0",
|
||||||
"webpack": "^5.99.6",
|
"webpack": "^5.99.7",
|
||||||
"webpack-cli": "^6.0.1"
|
"webpack-cli": "^6.0.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|||||||
@@ -148,6 +148,8 @@ engine is shown. Most of the options have a default value or even are optional.
|
|||||||
``display_error_messages`` : default ``true``
|
``display_error_messages`` : default ``true``
|
||||||
When an engine returns an error, the message is displayed on the user interface.
|
When an engine returns an error, the message is displayed on the user interface.
|
||||||
|
|
||||||
|
.. _engine network:
|
||||||
|
|
||||||
``network`` : optional
|
``network`` : optional
|
||||||
Use the network configuration from another engine.
|
Use the network configuration from another engine.
|
||||||
In addition, there are two default networks:
|
In addition, there are two default networks:
|
||||||
@@ -257,4 +259,3 @@ Example configuration in settings.yml for a German and English speaker:
|
|||||||
|
|
||||||
When searching, the default google engine will return German results and
|
When searching, the default google engine will return German results and
|
||||||
"google english" will return English results.
|
"google english" will return English results.
|
||||||
|
|
||||||
|
|||||||
@@ -57,11 +57,11 @@
|
|||||||
|
|
||||||
``default_lang``:
|
``default_lang``:
|
||||||
Default search language - leave blank to detect from browser information or
|
Default search language - leave blank to detect from browser information or
|
||||||
use codes from :origin:`searx/languages.py`.
|
use codes from :origin:`searx/sxng_locales.py`.
|
||||||
|
|
||||||
``languages``:
|
``languages``:
|
||||||
List of available languages - leave unset to use all codes from
|
List of available languages - leave unset to use all codes from
|
||||||
:origin:`searx/languages.py`. Otherwise list codes of available languages.
|
:origin:`searx/sxng_locales.py`. Otherwise list codes of available languages.
|
||||||
The ``all`` value is shown as the ``Default language`` in the user interface
|
The ``all`` value is shown as the ``Default language`` in the user interface
|
||||||
(in most cases, it is meant to send the query without a language parameter ;
|
(in most cases, it is meant to send the query without a language parameter ;
|
||||||
in some cases, it means the English language) Example:
|
in some cases, it means the English language) Example:
|
||||||
|
|||||||
8
docs/dev/engines/online/chinaso.rst
Normal file
8
docs/dev/engines/online/chinaso.rst
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
.. _chinaso engine:
|
||||||
|
|
||||||
|
=======
|
||||||
|
ChinaSo
|
||||||
|
=======
|
||||||
|
|
||||||
|
.. automodule:: searx.engines.chinaso
|
||||||
|
:members:
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
certifi==2025.1.31
|
certifi==2025.4.26
|
||||||
babel==2.17.0
|
babel==2.17.0
|
||||||
flask-babel==4.0.0
|
flask-babel==4.0.0
|
||||||
flask==3.1.0
|
flask==3.1.0
|
||||||
@@ -11,11 +11,11 @@ httpx[http2]==0.24.1
|
|||||||
Brotli==1.1.0
|
Brotli==1.1.0
|
||||||
uvloop==0.21.0
|
uvloop==0.21.0
|
||||||
httpx-socks[asyncio]==0.7.7
|
httpx-socks[asyncio]==0.7.7
|
||||||
setproctitle==1.3.5
|
setproctitle==1.3.6
|
||||||
redis==5.0.8
|
redis==5.0.8
|
||||||
markdown-it-py==3.0.0
|
markdown-it-py==3.0.0
|
||||||
fasttext-predict==0.9.2.4
|
fasttext-predict==0.9.2.4
|
||||||
tomli==2.2.1; python_version < '3.11'
|
tomli==2.2.1; python_version < '3.11'
|
||||||
msgspec==0.19.0
|
msgspec==0.19.0
|
||||||
typer-slim==0.15.2
|
typer-slim==0.15.3
|
||||||
isodate==0.7.2
|
isodate==0.7.2
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -1,5 +1,60 @@
|
|||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
"""ChinaSo: A search engine from ChinaSo."""
|
"""ChinaSo_, a search engine for the chinese language area.
|
||||||
|
|
||||||
|
.. attention::
|
||||||
|
|
||||||
|
ChinaSo engine does not return real URL, the links from these search
|
||||||
|
engines violate the privacy of the users!!
|
||||||
|
|
||||||
|
We try to find a solution for this problem, please follow `issue #4694`_.
|
||||||
|
|
||||||
|
As long as the problem has not been resolved, these engines are
|
||||||
|
not active in a standard setup (``inactive: true``).
|
||||||
|
|
||||||
|
.. _ChinaSo: https://www.chinaso.com/
|
||||||
|
.. _issue #4694: https://github.com/searxng/searxng/issues/4694
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
=============
|
||||||
|
|
||||||
|
The engine has the following additional settings:
|
||||||
|
|
||||||
|
- :py:obj:`chinaso_category` (:py:obj:`ChinasoCategoryType`)
|
||||||
|
- :py:obj:`chinaso_news_source` (:py:obj:`ChinasoNewsSourceType`)
|
||||||
|
|
||||||
|
In the example below, all three ChinaSO engines are using the :ref:`network
|
||||||
|
<engine network>` from the ``chinaso news`` engine.
|
||||||
|
|
||||||
|
.. code:: yaml
|
||||||
|
|
||||||
|
- name: chinaso news
|
||||||
|
engine: chinaso
|
||||||
|
shortcut: chinaso
|
||||||
|
categories: [news]
|
||||||
|
chinaso_category: news
|
||||||
|
chinaso_news_source: all
|
||||||
|
|
||||||
|
- name: chinaso images
|
||||||
|
engine: chinaso
|
||||||
|
network: chinaso news
|
||||||
|
shortcut: chinasoi
|
||||||
|
categories: [images]
|
||||||
|
chinaso_category: images
|
||||||
|
|
||||||
|
- name: chinaso videos
|
||||||
|
engine: chinaso
|
||||||
|
network: chinaso news
|
||||||
|
shortcut: chinasov
|
||||||
|
categories: [videos]
|
||||||
|
chinaso_category: videos
|
||||||
|
|
||||||
|
|
||||||
|
Implementations
|
||||||
|
===============
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
import typing
|
||||||
|
|
||||||
from urllib.parse import urlencode
|
from urllib.parse import urlencode
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
@@ -20,13 +75,31 @@ paging = True
|
|||||||
time_range_support = True
|
time_range_support = True
|
||||||
results_per_page = 10
|
results_per_page = 10
|
||||||
categories = []
|
categories = []
|
||||||
chinaso_category = 'news'
|
|
||||||
|
ChinasoCategoryType = typing.Literal['news', 'videos', 'images']
|
||||||
"""ChinaSo supports news, videos, images search.
|
"""ChinaSo supports news, videos, images search.
|
||||||
|
|
||||||
- ``news``: search for news
|
- ``news``: search for news
|
||||||
- ``videos``: search for videos
|
- ``videos``: search for videos
|
||||||
- ``images``: search for images
|
- ``images``: search for images
|
||||||
|
|
||||||
|
In the category ``news`` you can additionally filter by option
|
||||||
|
:py:obj:`chinaso_news_source`.
|
||||||
"""
|
"""
|
||||||
|
chinaso_category = 'news'
|
||||||
|
"""Configure ChinaSo category (:py:obj:`ChinasoCategoryType`)."""
|
||||||
|
|
||||||
|
ChinasoNewsSourceType = typing.Literal['CENTRAL', 'LOCAL', 'BUSINESS', 'EPAPER', 'all']
|
||||||
|
"""Filtering ChinaSo-News results by source:
|
||||||
|
|
||||||
|
- ``CENTRAL``: central publication
|
||||||
|
- ``LOCAL``: local publication
|
||||||
|
- ``BUSINESS``: business publication
|
||||||
|
- ``EPAPER``: E-Paper
|
||||||
|
- ``all``: all sources
|
||||||
|
"""
|
||||||
|
chinaso_news_source: ChinasoNewsSourceType = 'all'
|
||||||
|
"""Configure ChinaSo-News type (:py:obj:`ChinasoNewsSourceType`)."""
|
||||||
|
|
||||||
time_range_dict = {'day': '24h', 'week': '1w', 'month': '1m', 'year': '1y'}
|
time_range_dict = {'day': '24h', 'week': '1w', 'month': '1m', 'year': '1y'}
|
||||||
|
|
||||||
@@ -35,7 +108,9 @@ base_url = "https://www.chinaso.com"
|
|||||||
|
|
||||||
def init(_):
|
def init(_):
|
||||||
if chinaso_category not in ('news', 'videos', 'images'):
|
if chinaso_category not in ('news', 'videos', 'images'):
|
||||||
raise SearxEngineAPIException(f"Unsupported category: {chinaso_category}")
|
raise ValueError(f"Unsupported category: {chinaso_category}")
|
||||||
|
if chinaso_category == 'news' and chinaso_news_source not in typing.get_args(ChinasoNewsSourceType):
|
||||||
|
raise ValueError(f"Unsupported news source: {chinaso_news_source}")
|
||||||
|
|
||||||
|
|
||||||
def request(query, params):
|
def request(query, params):
|
||||||
@@ -56,6 +131,11 @@ def request(query, params):
|
|||||||
'params': {'start_index': (params["pageno"] - 1) * results_per_page, 'rn': results_per_page},
|
'params': {'start_index': (params["pageno"] - 1) * results_per_page, 'rn': results_per_page},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
if chinaso_news_source != 'all':
|
||||||
|
if chinaso_news_source == 'EPAPER':
|
||||||
|
category_config['news']['params']["type"] = 'EPAPER'
|
||||||
|
else:
|
||||||
|
category_config['news']['params']["cate"] = chinaso_news_source
|
||||||
|
|
||||||
query_params.update(category_config[chinaso_category]['params'])
|
query_params.update(category_config[chinaso_category]['params'])
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
"""Semantic Scholar (Science)
|
"""Semantic Scholar (Science)"""
|
||||||
"""
|
|
||||||
|
|
||||||
from json import dumps, loads
|
from json import dumps
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
from lxml import html
|
||||||
|
|
||||||
from flask_babel import gettext
|
from flask_babel import gettext
|
||||||
|
from searx.network import get
|
||||||
|
from searx.utils import eval_xpath_getindex, gen_useragent, html_to_text
|
||||||
|
|
||||||
|
|
||||||
about = {
|
about = {
|
||||||
"website": 'https://www.semanticscholar.org/',
|
"website": 'https://www.semanticscholar.org/',
|
||||||
@@ -19,13 +22,31 @@ about = {
|
|||||||
categories = ['science', 'scientific publications']
|
categories = ['science', 'scientific publications']
|
||||||
paging = True
|
paging = True
|
||||||
search_url = 'https://www.semanticscholar.org/api/1/search'
|
search_url = 'https://www.semanticscholar.org/api/1/search'
|
||||||
paper_url = 'https://www.semanticscholar.org/paper'
|
base_url = 'https://www.semanticscholar.org'
|
||||||
|
|
||||||
|
|
||||||
|
def _get_ui_version():
|
||||||
|
resp = get(base_url)
|
||||||
|
if not resp.ok:
|
||||||
|
raise RuntimeError("Can't determine Semantic Scholar UI version")
|
||||||
|
|
||||||
|
doc = html.fromstring(resp.text)
|
||||||
|
ui_version = eval_xpath_getindex(doc, "//meta[@name='s2-ui-version']/@content", 0)
|
||||||
|
if not ui_version:
|
||||||
|
raise RuntimeError("Can't determine Semantic Scholar UI version")
|
||||||
|
|
||||||
|
return ui_version
|
||||||
|
|
||||||
|
|
||||||
def request(query, params):
|
def request(query, params):
|
||||||
params['url'] = search_url
|
params['url'] = search_url
|
||||||
params['method'] = 'POST'
|
params['method'] = 'POST'
|
||||||
params['headers']['content-type'] = 'application/json'
|
params['headers'] = {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
'X-S2-UI-Version': _get_ui_version(),
|
||||||
|
'X-S2-Client': "webapp-browser",
|
||||||
|
'User-Agent': gen_useragent(),
|
||||||
|
}
|
||||||
params['data'] = dumps(
|
params['data'] = dumps(
|
||||||
{
|
{
|
||||||
"queryString": query,
|
"queryString": query,
|
||||||
@@ -43,7 +64,8 @@ def request(query, params):
|
|||||||
|
|
||||||
|
|
||||||
def response(resp):
|
def response(resp):
|
||||||
res = loads(resp.text)
|
res = resp.json()
|
||||||
|
|
||||||
results = []
|
results = []
|
||||||
for result in res['results']:
|
for result in res['results']:
|
||||||
url = result.get('primaryPaperLink', {}).get('url')
|
url = result.get('primaryPaperLink', {}).get('url')
|
||||||
@@ -54,7 +76,7 @@ def response(resp):
|
|||||||
if alternatePaperLinks:
|
if alternatePaperLinks:
|
||||||
url = alternatePaperLinks[0].get('url')
|
url = alternatePaperLinks[0].get('url')
|
||||||
if not url:
|
if not url:
|
||||||
url = paper_url + '/%s' % result['id']
|
url = base_url + '/paper/%s' % result['id']
|
||||||
|
|
||||||
# publishedDate
|
# publishedDate
|
||||||
if 'pubDate' in result:
|
if 'pubDate' in result:
|
||||||
@@ -88,7 +110,7 @@ def response(resp):
|
|||||||
'template': 'paper.html',
|
'template': 'paper.html',
|
||||||
'url': url,
|
'url': url,
|
||||||
'title': result['title']['text'],
|
'title': result['title']['text'],
|
||||||
'content': result['paperAbstract']['text'],
|
'content': html_to_text(result['paperAbstract']['text']),
|
||||||
'journal': result.get('venue', {}).get('text') or result.get('journal', {}).get('name'),
|
'journal': result.get('venue', {}).get('text') or result.get('journal', {}).get('name'),
|
||||||
'doi': result.get('doiInfo', {}).get('doi'),
|
'doi': result.get('doiInfo', {}).get('doi'),
|
||||||
'tags': result.get('fieldsOfStudy'),
|
'tags': result.get('fieldsOfStudy'),
|
||||||
|
|||||||
@@ -619,23 +619,37 @@ engines:
|
|||||||
# to show premium or plus results too:
|
# to show premium or plus results too:
|
||||||
# skip_premium: false
|
# skip_premium: false
|
||||||
|
|
||||||
|
# WARNING: links from chinaso.com voilate users privacy
|
||||||
|
# Before activate these engines its mandatory to read
|
||||||
|
# - https://github.com/searxng/searxng/issues/4694
|
||||||
|
# - https://docs.searxng.org/dev/engines/online/chinaso.html
|
||||||
|
|
||||||
- name: chinaso news
|
- name: chinaso news
|
||||||
chinaso_category: news
|
|
||||||
engine: chinaso
|
engine: chinaso
|
||||||
shortcut: chinaso
|
shortcut: chinaso
|
||||||
|
categories: [news]
|
||||||
|
chinaso_category: news
|
||||||
|
chinaso_news_source: all
|
||||||
disabled: true
|
disabled: true
|
||||||
|
inactive: true
|
||||||
|
|
||||||
- name: chinaso images
|
- name: chinaso images
|
||||||
chinaso_category: images
|
|
||||||
engine: chinaso
|
engine: chinaso
|
||||||
|
network: chinaso news
|
||||||
shortcut: chinasoi
|
shortcut: chinasoi
|
||||||
|
categories: [images]
|
||||||
|
chinaso_category: images
|
||||||
disabled: true
|
disabled: true
|
||||||
|
inactive: true
|
||||||
|
|
||||||
- name: chinaso videos
|
- name: chinaso videos
|
||||||
chinaso_category: videos
|
|
||||||
engine: chinaso
|
engine: chinaso
|
||||||
|
network: chinaso news
|
||||||
shortcut: chinasov
|
shortcut: chinasov
|
||||||
|
categories: [videos]
|
||||||
|
chinaso_category: videos
|
||||||
disabled: true
|
disabled: true
|
||||||
|
inactive: true
|
||||||
|
|
||||||
- name: cloudflareai
|
- name: cloudflareai
|
||||||
engine: cloudflareai
|
engine: cloudflareai
|
||||||
|
|||||||
Binary file not shown.
@@ -30,7 +30,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: searx\n"
|
"Project-Id-Version: searx\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2025-03-29 09:21+0000\n"
|
"POT-Creation-Date: 2025-03-29 09:21+0000\n"
|
||||||
"PO-Revision-Date: 2025-03-31 18:08+0000\n"
|
"PO-Revision-Date: 2025-04-30 15:18+0000\n"
|
||||||
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
|
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
|
||||||
"Language-Team: Romanian <https://translate.codeberg.org/projects/searxng/"
|
"Language-Team: Romanian <https://translate.codeberg.org/projects/searxng/"
|
||||||
"searxng/ro/>\n"
|
"searxng/ro/>\n"
|
||||||
@@ -544,7 +544,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: searx/plugins/calculator.py:38
|
#: searx/plugins/calculator.py:38
|
||||||
msgid "Basic Calculator"
|
msgid "Basic Calculator"
|
||||||
msgstr ""
|
msgstr "Calculator de bază"
|
||||||
|
|
||||||
#: searx/plugins/calculator.py:39
|
#: searx/plugins/calculator.py:39
|
||||||
msgid "Calculate mathematical expressions via the search bar"
|
msgid "Calculate mathematical expressions via the search bar"
|
||||||
|
|||||||
Reference in New Issue
Block a user