logo

searx

My custom branche(s) on searx, a meta-search engine git clone https://hacktivis.me/git/searx.git

translated.py (1851B)


  1. """
  2. MyMemory Translated
  3. @website https://mymemory.translated.net/
  4. @provide-api yes (https://mymemory.translated.net/doc/spec.php)
  5. @using-api yes
  6. @results JSON
  7. @stable yes
  8. @parse url, title, content
  9. """
  10. import re
  11. from sys import version_info
  12. from searx.utils import is_valid_lang
  13. if version_info[0] == 3:
  14. unicode = str
  15. categories = ['general']
  16. url = u'http://api.mymemory.translated.net/get?q={query}&langpair={from_lang}|{to_lang}{key}'
  17. web_url = u'http://mymemory.translated.net/en/{from_lang}/{to_lang}/{query}'
  18. weight = 100
  19. parser_re = re.compile(u'.*?([a-z]+)-([a-z]+) (.{2,})$', re.I)
  20. api_key = ''
  21. def request(query, params):
  22. m = parser_re.match(unicode(query, 'utf8'))
  23. if not m:
  24. return params
  25. from_lang, to_lang, query = m.groups()
  26. from_lang = is_valid_lang(from_lang)
  27. to_lang = is_valid_lang(to_lang)
  28. if not from_lang or not to_lang:
  29. return params
  30. if api_key:
  31. key_form = '&key=' + api_key
  32. else:
  33. key_form = ''
  34. params['url'] = url.format(from_lang=from_lang[1],
  35. to_lang=to_lang[1],
  36. query=query,
  37. key=key_form)
  38. params['query'] = query
  39. params['from_lang'] = from_lang
  40. params['to_lang'] = to_lang
  41. return params
  42. def response(resp):
  43. results = []
  44. results.append({
  45. 'url': web_url.format(
  46. from_lang=resp.search_params['from_lang'][2],
  47. to_lang=resp.search_params['to_lang'][2],
  48. query=resp.search_params['query']),
  49. 'title': '[{0}-{1}] {2}'.format(
  50. resp.search_params['from_lang'][1],
  51. resp.search_params['to_lang'][1],
  52. resp.search_params['query']),
  53. 'content': resp.json()['responseData']['translatedText']
  54. })
  55. return results