diff --git a/modules/ing/browser.py b/modules/ing/browser.py index d90c9134..53fb309a 100644 --- a/modules/ing/browser.py +++ b/modules/ing/browser.py @@ -26,7 +26,7 @@ from weboob.capabilities.bank import Account, TransferError, AccountNotFound from weboob.capabilities.base import find_object from .pages import AccountsList, LoginPage, NetissimaPage, TitrePage, TitreHistory,\ - TransferPage, TransferConfirmPage, BillsPage, StopPage, TitreDetails + TransferPage, TransferConfirmPage, BillsPage, StopPage, TitreDetails, TitreValuePage __all__ = ['IngBrowser'] @@ -61,6 +61,7 @@ class IngBrowser(LoginBrowser): titrepage = URL('https://bourse.ingdirect.fr/priv/portefeuille-TR.php', TitrePage) titrehistory = URL('https://bourse.ingdirect.fr/priv/compte.php\?ong=3', TitreHistory) titrerealtime = URL('https://bourse.ingdirect.fr/streaming/compteTempsReelCK.php', TitrePage) + titrevalue = URL('https://bourse.ingdirect.fr/priv/fiche-valeur.php\?val=(?P.*)&popup=1', TitreValuePage) # CapBill billpage = URL('/protected/pages/common/estatement/eStatement.jsf', BillsPage) diff --git a/modules/ing/pages/__init__.py b/modules/ing/pages/__init__.py index 8d59568d..7ce35cf8 100644 --- a/modules/ing/pages/__init__.py +++ b/modules/ing/pages/__init__.py @@ -22,7 +22,7 @@ from .accounts_list import AccountsList, TitreDetails from .login import LoginPage, StopPage from .transfer import TransferPage, TransferConfirmPage from .bills import BillsPage -from .titre import NetissimaPage, TitrePage, TitreHistory +from .titre import NetissimaPage, TitrePage, TitreHistory, TitreValuePage class AccountPrelevement(AccountsList): @@ -30,4 +30,5 @@ class AccountPrelevement(AccountsList): __all__ = ['AccountsList', 'LoginPage', 'NetissimaPage','TitreDetails', 'AccountPrelevement', 'TransferPage', 'TransferConfirmPage', - 'BillsPage', 'StopPage', 'TitrePage', 'TitreHistory'] + 'BillsPage', 'StopPage', 'TitrePage', 'TitreHistory', + 'TitreValuePage'] diff --git a/modules/ing/pages/titre.py b/modules/ing/pages/titre.py index dd830122..cfb6a75a 100644 --- a/modules/ing/pages/titre.py +++ b/modules/ing/pages/titre.py @@ -35,6 +35,11 @@ class Transaction(FrenchTransaction): pass +class TitreValuePage(LoggedPage, HTMLPage): + def get_isin(self): + return self.doc.xpath('//div[@id="headFiche"]//span[@id="test3"]/text()')[0].split(' - ')[0].strip() + + class TitrePage(LoggedPage, RawPage): def iter_investments(self): # We did not get some html, but something like that (XX is a quantity, YY a price): @@ -49,9 +54,9 @@ class TitrePage(LoggedPage, RawPage): _id = columns[0].split('{')[2] invest = Investment(_id) invest.label = unicode(columns[0].split('{')[-1]) - invest.code = _id.split(':')[0] - if ':' in _id: - invest.description = unicode(_id.split(':')[1]) + invest.code = unicode(_id) + if ':' in invest.code: + invest.code = self.browser.titrevalue.open(val=invest.code).get_isin() quantity = FrenchTransaction.clean_amount(columns[1]) if quantity != '': invest.quantity = Decimal(quantity)