summaryrefslogtreecommitdiff
path: root/searx/engines/mozhi.py
diff options
context:
space:
mode:
authorBnyro <bnyro@tutanota.com>2024-10-15 15:39:14 +0200
committerMarkus Heiser <markus.heiser@darmarIT.de>2025-01-28 07:07:08 +0100
commit9079d0cac0156139952446f0fdc8b37b94c10756 (patch)
tree0164ae5b30d173cda9e60ea8048b16033b2029cc /searx/engines/mozhi.py
parent70f1b6500861970f8b9e52fbfe52a1796350ea69 (diff)
[refactor] translation engines: common interface
Diffstat (limited to 'searx/engines/mozhi.py')
-rw-r--r--searx/engines/mozhi.py24
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]