32def response(resp) -> EngineResults:
33 res = EngineResults()
34
35
36 json_resp = resp.text[resp.text.find('\n') + 1 : resp.text.rfind('\n') - 2]
37 try:
38 conversion_rate = float(json.loads(json_resp)["to"][0]["mid"])
39 except IndexError:
40 return res
41 answer = '{0} {1} = {2} {3}, 1 {1} ({5}) = {4} {3} ({6})'.format(
42 resp.search_params['amount'],
43 resp.search_params['from'],
44 resp.search_params['amount'] * conversion_rate,
45 resp.search_params['to'],
46 conversion_rate,
47 resp.search_params['from_name'],
48 resp.search_params['to_name'],
49 )
50
51 url = f"https://duckduckgo.com/?q={resp.search_params['from']}+to+{resp.search_params['to']}"
52 res.add(res.types.Answer(answer=answer, url=url))
53 return res