From a64ae7ddfe1b0ecf45f87637ed3de5e9d4c7dd65 Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Thu, 8 May 2014 11:18:05 +0200 Subject: [PATCH] fix determination of balance --- modules/banqueaccord/browser.py | 2 ++ modules/banqueaccord/pages.py | 10 ++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/modules/banqueaccord/browser.py b/modules/banqueaccord/browser.py index ab364ee9..15891792 100644 --- a/modules/banqueaccord/browser.py +++ b/modules/banqueaccord/browser.py @@ -65,6 +65,8 @@ class BanqueAccordBrowser(LoginBrowser): self.accounts.go() a.balance = self.page.get_balance() a.type = a.TYPE_CARD + if a.balance is None: + continue yield a @need_login diff --git a/modules/banqueaccord/pages.py b/modules/banqueaccord/pages.py index c04dc2e0..f0cdc54b 100644 --- a/modules/banqueaccord/pages.py +++ b/modules/banqueaccord/pages.py @@ -154,7 +154,11 @@ class IndexPage(LoggedPage, HTMLPage): class AccountsPage(LoggedPage, HTMLPage): def get_balance(self): balance = Decimal('0.0') - for line in self.doc.xpath('//div[@class="detail"]/table//tr'): + lines = self.doc.xpath('//div[@class="detail"]/table//tr') + if len(lines) == 0: + return None + + for line in lines: try: left = line.xpath('./td[@class="gauche"]')[0] right = line.xpath('./td[@class="droite"]')[0] @@ -163,9 +167,7 @@ class AccountsPage(LoggedPage, HTMLPage): continue if len(left.xpath('./span[@class="precision"]')) == 0 or \ - (left.text is None or - not 'total' in left.text.lower() or - u'prélevé' in left.xpath('./span[@class="precision"]')[0].text.lower()): + (left.text is None or not 'total' in left.text.lower()): continue balance -= CleanDecimal('.', replace_dots=False)(right)