From 12f748448b3936b0a295500d071bf2f99d8aadae Mon Sep 17 00:00:00 2001 From: Phuoc CAO Date: Tue, 2 Oct 2018 08:14:37 +0200 Subject: [PATCH] replace yahoo currency by FT currency --- caotek_mesavoirs.egg-info/requires.txt | 1 - caotek_mesavoirs/models/actifs.py | 15 +++++++++------ caotek_mesavoirs/views/default.py | 4 ++-- setup.py | 1 - 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/caotek_mesavoirs.egg-info/requires.txt b/caotek_mesavoirs.egg-info/requires.txt index 80bb549..4f88d89 100644 --- a/caotek_mesavoirs.egg-info/requires.txt +++ b/caotek_mesavoirs.egg-info/requires.txt @@ -10,7 +10,6 @@ zope.sqlalchemy waitress MySQL-python docutils -yahoo_finance BeautifulSoup [testing] diff --git a/caotek_mesavoirs/models/actifs.py b/caotek_mesavoirs/models/actifs.py index f0b83b6..5ad2f4f 100644 --- a/caotek_mesavoirs/models/actifs.py +++ b/caotek_mesavoirs/models/actifs.py @@ -143,15 +143,18 @@ def delete_histo(request, no_id): def getCurrencyRate(currency): # specify the url - quote_page = 'http://www.finances.net/devises/courseuro' + quote_page = 'https://markets.ft.com/data/currencies/tearsheet/summary?s=%seur' % currency # query & parse the html using beautiful soap and store in variable `soup` soup = BeautifulSoup(urllib2.urlopen(quote_page), 'html.parser') - # get the history table - rows = soup.find('table', attrs={'class': 'news_table'}).tbody.findAll('tr') - divs = rows[1].findAll('td') - rate = divs[1].span.text - return float(rate.replace(',','.')) + data_list = soup.find_all("span", class_="mod-ui-data-list__value") + if data_list: + # get the rate price in EUR + rate_price = float(data_list[0].text.replace(',','')) + else: + rate_price = 0.0 + + return rate_price def getFTQuote(ticker): # specify the url of The Financial Times diff --git a/caotek_mesavoirs/views/default.py b/caotek_mesavoirs/views/default.py index 76dd5d0..cba2389 100644 --- a/caotek_mesavoirs/views/default.py +++ b/caotek_mesavoirs/views/default.py @@ -105,8 +105,8 @@ def home(request): # MAJ du prtefeuille if 'form.submitted' in request.params: - # maj des parités des devises d'après Yahoo finance - update_actif_devise(request, 'USD', getCurrencyRate('USD')) + # maj des parités des devises + update_actif_devise(request, 'USD', getCurrencyRate('usd')) for item in actifs: if item.type == 'ACTION': diff --git a/setup.py b/setup.py index b90ff97..71edff1 100644 --- a/setup.py +++ b/setup.py @@ -22,7 +22,6 @@ requires = [ 'waitress', 'MySQL-python', 'docutils', - 'yahoo_finance', 'BeautifulSoup', ]