| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | """ MyMemory Translated @website     https://mymemory.translated.net/ @provide-api yes (https://mymemory.translated.net/doc/spec.php) @using-api   yes @results     JSON @stable      yes @parse       url, title, content"""import refrom searx.utils import is_valid_langcategories = ['general']url = u'https://api.mymemory.translated.net/get?q={query}&langpair={from_lang}|{to_lang}{key}'web_url = u'https://mymemory.translated.net/en/{from_lang}/{to_lang}/{query}'weight = 100parser_re = re.compile(b'.*?([a-z]+)-([a-z]+) (.{2,})$', re.I)api_key = ''def request(query, params):    m = parser_re.match(query)    if not m:        return params    from_lang, to_lang, query = m.groups()    from_lang = is_valid_lang(from_lang)    to_lang = is_valid_lang(to_lang)    if not from_lang or not to_lang:        return params    if api_key:        key_form = '&key=' + api_key    else:        key_form = ''    params['url'] = url.format(from_lang=from_lang[1],                               to_lang=to_lang[1],                               query=query.decode('utf-8'),                               key=key_form)    params['query'] = query.decode('utf-8')    params['from_lang'] = from_lang    params['to_lang'] = to_lang    return paramsdef response(resp):    results = []    results.append({        'url': web_url.format(            from_lang=resp.search_params['from_lang'][2],            to_lang=resp.search_params['to_lang'][2],            query=resp.search_params['query']),        'title': '[{0}-{1}] {2}'.format(            resp.search_params['from_lang'][1],            resp.search_params['to_lang'][1],            resp.search_params['query']),        'content': resp.json()['responseData']['translatedText']    })    return results
 |