.oO SearXNG Developer Documentation Oo.
Loading...
Searching...
No Matches
searx.engines.lingva Namespace Reference

Functions

 request (_query, params)
 
EngineResults response (resp)
 

Variables

dict about
 
str engine_type = 'online_dictionary'
 
list categories = ['general', 'translate']
 
str url = "https://lingva.thedaviddelta.com"
 

Detailed Description

Lingva (alternative Google Translate frontend)

Function Documentation

◆ request()

searx.engines.lingva.request ( _query,
params )

Definition at line 21 of file lingva.py.

21def request(_query, params):
22 params['url'] = f"{url}/api/v1/{params['from_lang'][1]}/{params['to_lang'][1]}/{params['query']}"
23 return params
24
25

◆ response()

EngineResults searx.engines.lingva.response ( resp)

Definition at line 26 of file lingva.py.

26def response(resp) -> EngineResults:
27 results = EngineResults()
28
29 result = resp.json()
30 info = result["info"]
31 from_to_prefix = "%s-%s " % (resp.search_params['from_lang'][1], resp.search_params['to_lang'][1])
32
33 if "typo" in info:
34 results.append({"suggestion": from_to_prefix + info["typo"]})
35
36 if 'definitions' in info: # pylint: disable=too-many-nested-blocks
37 for definition in info['definitions']:
38 for item in definition.get('list', []):
39 for synonym in item.get('synonyms', []):
40 results.append({"suggestion": from_to_prefix + synonym})
41
42 data = []
43
44 for definition in info['definitions']:
45 for translation in definition['list']:
46 data.append(
47 results.types.Translations.Item(
48 text=result['translation'],
49 definitions=[translation['definition']] if translation['definition'] else [],
50 examples=[translation['example']] if translation['example'] else [],
51 synonyms=translation['synonyms'],
52 )
53 )
54
55 for translation in info["extraTranslations"]:
56 for word in translation["list"]:
57 data.append(
58 results.types.Translations.Item(
59 text=word['word'],
60 definitions=word['meanings'],
61 )
62 )
63
64 if not data and result['translation']:
65 data.append(results.types.Translations.Item(text=result['translation']))
66
67 params = resp.search_params
68 results.add(
69 results.types.Translations(
70 translations=data,
71 url=f"{url}/{params['from_lang'][1]}/{params['to_lang'][1]}/{params['query']}",
72 )
73 )
74 return results

Variable Documentation

◆ about

dict searx.engines.lingva.about
Initial value:
1= {
2 "website": 'https://lingva.ml',
3 "wikidata_id": None,
4 "official_api_documentation": 'https://github.com/thedaviddelta/lingva-translate#public-apis',
5 "use_official_api": True,
6 "require_api_key": False,
7 "results": 'JSON',
8}

Definition at line 6 of file lingva.py.

◆ categories

list searx.engines.lingva.categories = ['general', 'translate']

Definition at line 16 of file lingva.py.

◆ engine_type

str searx.engines.lingva.engine_type = 'online_dictionary'

Definition at line 15 of file lingva.py.

◆ url

str searx.engines.lingva.url = "https://lingva.thedaviddelta.com"

Definition at line 18 of file lingva.py.