@@ -11,7 +11,7 @@ if sys.version_info[0] == 3:
1111 unicode = str
1212
1313categories = []
14−url = 'https://finance.google.com/finance/converter?a=1&from={0}&to={1}'
14+url = 'https://duckduckgo.com/js/spice/currency/1/{0}/{1}'
1515weight = 100
1616
1717parser_re = re.compile(b'.*?(\\d+(?:\\.\\d+)?) ([^.0-9]+) (?:in|to) ([^.0-9]+)', re.I)
@@ -63,16 +63,13 @@ def request(query, params):
6363
6464
6565def response(resp):
66+ """remove first and last lines to get only json"""
67+ json_resp = resp.text[resp.text.find('\n')+1:resp.text.rfind('\n')-2]
6668 results = []
67− pat = '<span class=bld>(.+) {0}</span>'.format(
68− resp.search_params['to'].upper())
69−
7069 try:
71− conversion_rate = re.findall(pat, resp.text)[0]
72− conversion_rate = float(conversion_rate)
70+ conversion_rate = float(json.loads(json_resp)['conversion']['converted-amount'])
7371 except:
7472 return results
75−
7673 answer = '{0} {1} = {2} {3}, 1 {1} ({5}) = {4} {3} ({6})'.format(
7774 resp.search_params['amount'],
7875 resp.search_params['from'],
@@ -83,7 +80,7 @@ def response(resp):
8380 resp.search_params['to_name'],
8481 )
8582
86− url = 'https://finance.google.com/finance?q={0}{1}'.format(
83+ url = 'https://duckduckgo.com/js/spice/currency/1/{0}/{1}'.format(
8784 resp.search_params['from'].upper(), resp.search_params['to'])
8885
8986 results.append({'answer': answer, 'url': url})