From bd001f631e0cfe45f58ce8c5e9c74e833ae8817d Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Tue, 16 Oct 2012 14:38:55 +0200 Subject: [PATCH] fix retrieve of accounts --- modules/banquepopulaire/browser.py | 14 +++++++++----- modules/banquepopulaire/pages.py | 7 +++++++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/modules/banquepopulaire/browser.py b/modules/banquepopulaire/browser.py index f9fcf5bd..15ae24da 100644 --- a/modules/banquepopulaire/browser.py +++ b/modules/banquepopulaire/browser.py @@ -31,11 +31,12 @@ __all__ = ['BanquePopulaire'] class BanquePopulaire(BaseBrowser): PROTOCOL = 'https' ENCODING = 'iso-8859-15' - PAGES = {'https://[^/]+/auth/UI/Login.*': LoginPage, - 'https://[^/]+/cyber/internet/Login.do': IndexPage, - 'https://[^/]+/cyber/internet/StartTask.do\?taskInfoOID=mesComptes.*': AccountsPage, - 'https://[^/]+/cyber/internet/ContinueTask.do\?.*dialogActionPerformed=SOLDE.*': TransactionsPage, - 'https://[^/]+/cyber/internet/Page.do\?.*taskInfoOID=mesComptes.*': TransactionsPage, + PAGES = {'https://[^/]+/auth/UI/Login.*': LoginPage, + 'https://[^/]+/cyber/internet/Login.do': IndexPage, + 'https://[^/]+/cyber/internet/StartTask.do\?taskInfoOID=mesComptes.*': AccountsPage, + 'https://[^/]+/cyber/internet/StartTask.do\?taskInfoOID=maSyntheseGratuite.*': AccountsPage, + 'https://[^/]+/cyber/internet/ContinueTask.do\?.*dialogActionPerformed=SOLDE.*': TransactionsPage, + 'https://[^/]+/cyber/internet/Page.do\?.*taskInfoOID=mesComptes.*': TransactionsPage, } def __init__(self, website, *args, **kwargs): @@ -70,6 +71,9 @@ class BanquePopulaire(BaseBrowser): def get_accounts_list(self): self.location(self.buildurl('/cyber/internet/StartTask.do', taskInfoOID='mesComptes', token=self.token)) + if self.page.is_error(): + self.location(self.buildurl('/cyber/internet/StartTask.do', taskInfoOID='maSyntheseGratuite', token=self.token)) + return self.page.get_list() def get_account(self, id): diff --git a/modules/banquepopulaire/pages.py b/modules/banquepopulaire/pages.py index d1d5688a..e25ac077 100644 --- a/modules/banquepopulaire/pages.py +++ b/modules/banquepopulaire/pages.py @@ -49,6 +49,13 @@ class AccountsPage(BasePage): u'Mes comptes': Account.TYPE_CHECKING, } + def is_error(self): + for script in self.document.xpath('//script'): + if script.text is not None and u"Le service est momentanément indisponible" in script.text: + return True + + return False + def get_list(self): account_type = Account.TYPE_UNKNOWN