on master help sign in
[enh] smarter currency query parse
commita35128f5e0af70d2a858f736e020ce451f652565 authorasciimoo <asciimoo@gmail.com> dateSun 1 Dec 2013, 16:41 (13 years ago) parentcfb0604
1 file changed+8−4
searx/engines/currency_convert.py+8−4
searx/engines/currency_convert.py+8−4
@@ -1,21 +1,25 @@
11from datetime import datetime
2+import re
23
34categories = []
45url = 'http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s={query}=X'
56weight = 100
67
8+parser_re = re.compile(r'^\W*(\d+(?:\.\d+)?)\W*([a-z]{3})\W*(?:in)?\W*([a-z]{3})\W*$')
9+
710def request(query, params):
11+ m = parser_re.match(query)
12+ if not m:
13+ # wrong query
14+ return params
815 try:
9− # eg.: "X EUR in USD"
10− ammount, from_currency, _, to_currency = query.split()
16+ ammount, from_currency, to_currency = m.groups()
1117 ammount = float(ammount)
1218 except:
1319 # wrong params
1420 return params
1521
1622 q = (from_currency+to_currency).upper()
17− if not q.isalpha():
18− return params
1923
2024 params['url'] = url.format(query=q)
2125 params['ammount'] = ammount