Ensure valid str->float conv in currency calc
Currency amounts returned by google seem to randomly include unicode chars ('\xa0' noted in #642) which broke the currency calculator included in the project. This ensures that only strings that can be converted to float are ever used in the conversion. Fixes #642main
parent
0e711beca7
commit
9984158ec1
|
@ -242,6 +242,9 @@ def check_currency(response: str) -> dict:
|
||||||
currency2 = currency_link[1].text
|
currency2 = currency_link[1].text
|
||||||
currency1 = currency1.rstrip('=').split(' ', 1)
|
currency1 = currency1.rstrip('=').split(' ', 1)
|
||||||
currency2 = currency2.split(' ', 1)
|
currency2 = currency2.split(' ', 1)
|
||||||
|
|
||||||
|
# Handle differences in currency formatting
|
||||||
|
# i.e. "5.000" vs "5,000"
|
||||||
if currency2[0][-3] == ',':
|
if currency2[0][-3] == ',':
|
||||||
currency1[0] = currency1[0].replace('.', '')
|
currency1[0] = currency1[0].replace('.', '')
|
||||||
currency1[0] = currency1[0].replace(',', '.')
|
currency1[0] = currency1[0].replace(',', '.')
|
||||||
|
@ -250,10 +253,17 @@ def check_currency(response: str) -> dict:
|
||||||
else:
|
else:
|
||||||
currency1[0] = currency1[0].replace(',', '')
|
currency1[0] = currency1[0].replace(',', '')
|
||||||
currency2[0] = currency2[0].replace(',', '')
|
currency2[0] = currency2[0].replace(',', '')
|
||||||
return {'currencyValue1': float(currency1[0]),
|
|
||||||
'currencyLabel1': currency1[1],
|
currency1_value = float(re.sub(r'[^\d\.]', '', currency1[0]))
|
||||||
'currencyValue2': float(currency2[0]),
|
currency1_label = currency1[1]
|
||||||
'currencyLabel2': currency2[1]
|
|
||||||
|
currency2_value = float(re.sub(r'[^\d\.]', '', currency2[0]))
|
||||||
|
currency2_label = currency2[1]
|
||||||
|
|
||||||
|
return {'currencyValue1': currency1_value,
|
||||||
|
'currencyLabel1': currency1_label,
|
||||||
|
'currencyValue2': currency2_value,
|
||||||
|
'currencyLabel2': currency2_label
|
||||||
}
|
}
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue