Deepl translation

- this needs a deepl api key
This commit is contained in:
Thomas Renard 2022-08-08 21:31:24 +02:00 committed by cy8aer
parent f199100e40
commit ce167a1800
2 changed files with 74 additions and 0 deletions

65
searx/engines/deepl.py Normal file
View File

@ -0,0 +1,65 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# lint: pylint
"""Deepl translation engine"""
from json import loads
about = {
"website": 'https://deepl.com',
"wikidata_id": 'Q43968444',
"official_api_documentation": 'https://www.deepl.com/docs-api',
"use_official_api": True,
"require_api_key": True,
"results": 'JSON',
}
engine_type = 'online_dictionary'
categories = ['general']
url = 'https://api-free.deepl.com/v2/translate'
def request(query, params):
'''pre-request callback
params<dict>:
method : POST/GET
headers : {}
data : {} # if method == POST
url : ''
category: 'search category'
pageno : 1 # number of the requested page
'''
params['url'] = url
params['method'] = 'POST'
params['data'] = {
'auth_key': api_key,
'text': params['query'],
'target_lang': params['to_lang'][1]
}
return params
def response(resp):
results = []
result = loads(resp.text)
translations = result['translations']
infobox = "<dl>"
for translation in translations:
infobox += f"<dd>{translation['text']}</dd>"
infobox += "</dl>"
results.append(
{
'infobox': 'Deepl',
'content': infobox,
}
)
return results

View File

@ -1401,6 +1401,15 @@ engines:
# See : https://mymemory.translated.net/doc/usagelimits.php
# api_key : ''
- name : deepl
engine : deepl
shortcut : dpl
# You can use the engine using the official stable API, but you need an API key
# See: https://www.deepl.com/pro-api?cta=header-pro-api
# api_key : '' # required!
timeout : 5.0
disabled : True
# Required dependency: mysql-connector-python
# - name : mysql
# engine : mysql_server