forked from zaclys/searxng
[mod] add /engine_descriptions.json endpoint
returns engine descriptions (JSON): * key: engine name * value: description in the user locale, use English description as a fallback
This commit is contained in:
parent
f8d5fe0f11
commit
bfd24d1226
@ -14,6 +14,7 @@ __all__ = [
|
||||
'WIKIDATA_UNITS',
|
||||
'EXTERNAL_BANGS',
|
||||
'OSM_KEYS_TAGS',
|
||||
'ENGINE_DESCRIPTIONS',
|
||||
'ahmia_blacklist_loader',
|
||||
]
|
||||
|
||||
@ -45,3 +46,4 @@ EXTERNAL_URLS = _load('external_urls.json')
|
||||
WIKIDATA_UNITS = _load('wikidata_units.json')
|
||||
EXTERNAL_BANGS = _load('external_bangs.json')
|
||||
OSM_KEYS_TAGS = _load('osm_keys_tags.json')
|
||||
ENGINE_DESCRIPTIONS = _load('engine_descriptions.json')
|
||||
|
3782
searx/data/engine_descriptions.json
Normal file
3782
searx/data/engine_descriptions.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -54,6 +54,7 @@ from searx import (
|
||||
settings,
|
||||
searx_debug,
|
||||
)
|
||||
from searx.data import ENGINE_DESCRIPTIONS
|
||||
from searx.settings_defaults import OUTPUT_FORMATS
|
||||
from searx.settings_loader import get_default_settings_path
|
||||
from searx.exceptions import SearxParameterException
|
||||
@ -1140,6 +1141,23 @@ def image_proxy():
|
||||
return '', 400
|
||||
|
||||
|
||||
@app.route('/engine_descriptions.json', methods=['GET'])
|
||||
def engine_descriptions():
|
||||
locale = get_locale().split('_')[0]
|
||||
result = ENGINE_DESCRIPTIONS['en'].copy()
|
||||
if locale != 'en':
|
||||
for engine, description in ENGINE_DESCRIPTIONS.get(locale, {}).items():
|
||||
result[engine] = description
|
||||
for engine, description in result.items():
|
||||
if len(description) ==2 and description[1] == 'ref':
|
||||
ref_engine, ref_lang = description[0].split(':')
|
||||
description = ENGINE_DESCRIPTIONS[ref_lang][ref_engine]
|
||||
if isinstance(description, str):
|
||||
description = [ description, 'wikipedia' ]
|
||||
result[engine] = description
|
||||
return jsonify(result)
|
||||
|
||||
|
||||
@app.route('/stats', methods=['GET'])
|
||||
def stats():
|
||||
"""Render engine statistics page."""
|
||||
|
Loading…
Reference in New Issue
Block a user