.oO SearXNG Developer Documentation Oo.
Loading...
Searching...
No Matches
libretranslate.py
Go to the documentation of this file.
1
# SPDX-License-Identifier: AGPL-3.0-or-later
2
"""LibreTranslate (Free and Open Source Machine Translation API)"""
3
4
import
random
5
import
json
6
from
searx.result_types
import
EngineResults
7
8
about = {
9
"website"
:
'https://libretranslate.com'
,
10
"wikidata_id"
:
None
,
11
"official_api_documentation"
:
'https://libretranslate.com/docs/'
,
12
"use_official_api"
:
True
,
13
"require_api_key"
:
False
,
14
"results"
:
'JSON'
,
15
}
16
17
engine_type =
'online_dictionary'
18
categories = [
'general'
,
'translate'
]
19
20
base_url =
"https://libretranslate.com/translate"
21
api_key =
""
22
23
24
def
request
(_query, params):
25
request_url = random.choice(base_url)
if
isinstance(base_url, list)
else
base_url
26
27
if
request_url.startswith(
"https://libretranslate.com"
)
and
not
api_key:
28
return
None
29
params[
'url'
] = f
"{request_url}/translate"
30
31
args = {
32
'q'
: params[
'query'
],
33
'source'
: params[
'from_lang'
][1],
34
'target'
: params[
'to_lang'
][1],
35
'alternatives'
: 3,
36
}
37
if
api_key:
38
args[
'api_key'
] = api_key
39
40
params[
'data'
] = json.dumps(args)
41
params[
'method'
] =
'POST'
42
params[
'headers'
] = {
'Content-Type'
:
'application/json'
}
43
params[
'req_url'
] = request_url
44
45
return
params
46
47
48
def
response
(resp) -> EngineResults:
49
results =
EngineResults
()
50
51
json_resp = resp.json()
52
text = json_resp.get(
'translatedText'
)
53
if
not
text:
54
return
results
55
56
item = results.types.Translations.Item(text=text, examples=json_resp.get(
'alternatives'
, []))
57
results.add(results.types.Translations(translations=[item]))
58
59
return
results
searx.result_types.EngineResults
Definition
__init__.py:44
searx.engines.libretranslate.response
EngineResults response(resp)
Definition
libretranslate.py:48
searx.engines.libretranslate.request
request(_query, params)
Definition
libretranslate.py:24
searx.result_types
Definition
__init__.py:1
searxng
searx
engines
libretranslate.py
Generated on Thu Feb 20 2025 20:12:42 for .oO SearXNG Developer Documentation Oo. by
1.13.2