diff options
| author | Bnyro <bnyro@tutanota.com> | 2024-10-15 15:39:14 +0200 |
|---|---|---|
| committer | Markus Heiser <markus.heiser@darmarIT.de> | 2025-01-28 07:07:08 +0100 |
| commit | 9079d0cac0156139952446f0fdc8b37b94c10756 (patch) | |
| tree | 0164ae5b30d173cda9e60ea8048b16033b2029cc /searx/engines/mozhi.py | |
| parent | 70f1b6500861970f8b9e52fbfe52a1796350ea69 (diff) | |
[refactor] translation engines: common interface
Diffstat (limited to 'searx/engines/mozhi.py')
| -rw-r--r-- | searx/engines/mozhi.py | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/searx/engines/mozhi.py b/searx/engines/mozhi.py index 63c90084e..a36bfbec8 100644 --- a/searx/engines/mozhi.py +++ b/searx/engines/mozhi.py @@ -4,7 +4,6 @@ import random import re from urllib.parse import urlencode -from flask_babel import gettext about = { "website": 'https://codeberg.org/aryak/mozhi', @@ -35,30 +34,27 @@ def request(_query, params): def response(resp): translation = resp.json() - infobox = "" + data = {'text': translation['translated-text'], 'definitions': [], 'examples': []} if translation['target_transliteration'] and not re.match( re_transliteration_unsupported, translation['target_transliteration'] ): - infobox = f"<b>{translation['target_transliteration']}</b>" + data['transliteration'] = translation['target_transliteration'] if translation['word_choices']: for word in translation['word_choices']: - infobox += f"<dl><dt>{word['word']}: {word['definition']}</dt>" + if word.get('definition'): + data['definitions'].append(word['definition']) - if word['examples_target']: - for example in word['examples_target']: - infobox += f"<dd>{re.sub(r'<|>', '', example)}</dd>" - infobox += f"<dd>{re.sub(r'<|>', '', example)}</dd>" + for example in word.get('examples_target', []): + data['examples'].append(re.sub(r"<|>", "", example).lstrip('- ')) - infobox += "</dl>" - - if translation['source_synonyms']: - infobox += f"<dl><dt>{gettext('Synonyms')}: {', '.join(translation['source_synonyms'])}</dt></dl>" + data['synonyms'] = translation.get('source_synonyms', []) result = { - 'infobox': translation['translated-text'], - 'content': infobox, + 'answer': translation['translated-text'], + 'answer_type': 'translations', + 'translations': [data], } return [result] |