summaryrefslogtreecommitdiff
path: root/searx/engines/currency_convert.py
diff options
context:
space:
mode:
authorasciimoo <asciimoo@gmail.com>2013-11-04 21:47:16 +0100
committerasciimoo <asciimoo@gmail.com>2013-11-04 21:47:16 +0100
commitcfff04f7d08e873a00897f04f2a5213401a84138 (patch)
treee36b174575a1f2cbbd9194cef35e272b56d2fe1f /searx/engines/currency_convert.py
parent1a2cf205f96f1f952237727d36387d81fe937fcf (diff)
downloadsearxng-cfff04f7d08e873a00897f04f2a5213401a84138.tar.gz
searxng-cfff04f7d08e873a00897f04f2a5213401a84138.zip
[enh] currency converter engine added
Diffstat (limited to 'searx/engines/currency_convert.py')
-rw-r--r--searx/engines/currency_convert.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/searx/engines/currency_convert.py b/searx/engines/currency_convert.py
new file mode 100644
index 000000000..62f3e8d93
--- /dev/null
+++ b/searx/engines/currency_convert.py
@@ -0,0 +1,45 @@
+
+categories = []
+url = 'http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s={query}=X'
+
+def request(query, params):
+ try:
+ # eg.: "X EUR in USD"
+ ammount, from_currency, _, to_currency = query.split()
+ ammount = float(ammount)
+ except:
+ # wrong params
+ return params
+
+ q = (from_currency+to_currency).upper()
+ if not q.isalpha():
+ return params
+
+ params['url'] = url.format(query=q)
+ params['ammount'] = ammount
+ params['from'] = from_currency
+ params['to'] = to_currency
+
+ return params
+
+
+def response(resp):
+ global base_url
+ results = []
+ try:
+ _,conversion_rate,_ = resp.text.split(',', 2)
+ conversion_rate = float(conversion_rate)
+ except:
+ return results
+
+ title = '{0} {1} in {2} is {3}'.format(resp.search_params['ammount']
+ ,resp.search_params['from']
+ ,resp.search_params['to']
+ ,resp.search_params['ammount']*conversion_rate
+ )
+
+ content = '1 {0} is {1} {2}'.format(resp.search_params['from'], conversion_rate, resp.search_params['to'])
+ url = 'http://finance.yahoo.com/currency/converter-results/20131104/{0}-{1}-to-{2}.html'.format(resp.search_params['ammount'], resp.search_params['from'].lower(), resp.search_params['to'].lower())
+ results.append({'title': title, 'content': content, 'url': url})
+
+ return results