From 63ec9058c98b0b6dc77c267a8c4d1b4904f564ce Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Wed, 27 Nov 2024 16:24:41 +0100 Subject: [PATCH] [chore] drop lingva engine / lingva-translate no onger maintained The lingva-translate seems to be dead. Even the instances specified in the README [1] have not been updated for 12 months and no longer correspond to the current status, for example https://translate.projectsegfau.lt/ has already switched to Mozhi. The official instance lingva.ml keeps failing [2] and seems to me to have a different interface than we have implemented in the engine. Somehow it all seems to be a bit of a mess, I can't think of any other solution than to take the engine out of SearXNG for the time being (unfortunately). [1] https://github.com/thedaviddelta/lingva-translate/blob/main/README.md#instances [2] https://github.com/thedaviddelta/lingva-translate/issues/184#issuecomment-2461363898 Signed-off-by: Markus Heiser --- searx/engines/lingva.py | 65 ----------------------------------------- searx/settings.yml | 6 ---- 2 files changed, 71 deletions(-) delete mode 100644 searx/engines/lingva.py diff --git a/searx/engines/lingva.py b/searx/engines/lingva.py deleted file mode 100644 index bf35deed4..000000000 --- a/searx/engines/lingva.py +++ /dev/null @@ -1,65 +0,0 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later -"""Lingva (alternative Google Translate frontend)""" - -from json import loads - -about = { - "website": 'https://lingva.ml', - "wikidata_id": None, - "official_api_documentation": 'https://github.com/thedaviddelta/lingva-translate#public-apis', - "use_official_api": True, - "require_api_key": False, - "results": 'JSON', -} - -engine_type = 'online_dictionary' -categories = ['general', 'translate'] - -url = "https://lingva.thedaviddelta.com" -search_url = "{url}/api/v1/{from_lang}/{to_lang}/{query}" - - -def request(_query, params): - params['url'] = search_url.format( - url=url, from_lang=params['from_lang'][1], to_lang=params['to_lang'][1], query=params['query'] - ) - return params - - -def response(resp): - results = [] - - result = loads(resp.text) - info = result["info"] - from_to_prefix = "%s-%s " % (resp.search_params['from_lang'][1], resp.search_params['to_lang'][1]) - - if "typo" in info: - results.append({"suggestion": from_to_prefix + info["typo"]}) - - if 'definitions' in info: # pylint: disable=too-many-nested-blocks - for definition in info['definitions']: - if 'list' in definition: - for item in definition['list']: - if 'synonyms' in item: - for synonym in item['synonyms']: - results.append({"suggestion": from_to_prefix + synonym}) - - infobox = "" - - for translation in info["extraTranslations"]: - for word in translation["list"]: - infobox += f"
{word['word']}
" - - for meaning in word["meanings"]: - infobox += f"
{meaning}
" - - infobox += "
" - - results.append( - { - 'infobox': result["translation"], - 'content': infobox, - } - ) - - return results diff --git a/searx/settings.yml b/searx/settings.yml index 0baa60770..f1a244a71 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -1121,12 +1121,6 @@ engines: shortcut: lt disabled: true - - name: lingva - engine: lingva - shortcut: lv - # set lingva instance in url, by default it will use the official instance - # url: https://lingva.thedaviddelta.com - - name: lobste.rs engine: xpath search_url: https://lobste.rs/search?q={query}&what=stories&order=relevance