Handle card history

Signed-off-by: Raphaël Rigo <devel-git@syscall.eu>
Signed-off-by: Romain Bignon <romain@symlink.me>
This commit is contained in:
Raphaël Rigo 2014-03-01 18:43:20 +01:00 committed by Romain Bignon
commit 31af964696
3 changed files with 16 additions and 3 deletions

View file

@ -22,7 +22,7 @@
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword
from .pages import LoginPage, AccountsList, AccountHistory, UpdateInfoPage, AuthenticationPage
from .pages import LoginPage, AccountsList, AccountHistory, CardHistory, UpdateInfoPage, AuthenticationPage
__all__ = ['Boursorama']
@ -42,6 +42,7 @@ class Boursorama(BaseBrowser):
'.*connexion.phtml.*': LoginPage,
'.*/comptes/synthese.phtml': AccountsList,
'.*/comptes/banque/detail/mouvements.phtml.*': AccountHistory,
'.*/comptes/banque/cartes/mouvements.phtml.*': CardHistory,
'.*/comptes/epargne/mouvements.phtml.*': AccountHistory,
'.*/date_anniversaire.phtml.*': UpdateInfoPage,
}
@ -121,7 +122,7 @@ class Boursorama(BaseBrowser):
while link is not None:
self.location(link)
if not self.is_on_page(AccountHistory):
if not self.is_on_page(AccountHistory) and not self.is_on_page(CardHistory):
raise NotImplementedError()
for tr in self.page.get_operations():

View file

@ -20,6 +20,7 @@
from .account_history import AccountHistory
from .card_history import CardHistory
from .accounts_list import AccountsList
from .login import LoginPage, UpdateInfoPage
@ -31,6 +32,7 @@ class AccountPrelevement(AccountsList):
__all__ = ['LoginPage',
'AccountsList',
'AccountHistory',
'CardHistory',
'UpdateInfoPage',
'AuthenticationPage',
]

View file

@ -39,7 +39,17 @@ class AccountsList(BasePage):
account._link_id = None
for td in tr.getiterator('td'):
if td.attrib.get('class', '') == 'account-cb':
break
try:
a = td.xpath('./*/a[@class="gras"]')[0]
except IndexError:
# ignore account
break
account.type = Account.TYPE_CARD
account.label = self.parser.tocleanstring(a)
try:
account._link_id = td.xpath('.//a')[0].attrib['href']
except KeyError:
pass
elif td.attrib.get('class', '') == 'account-name':
try: