From f265722d0ac7b201b5c682ed8dc495ca9776d94e Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Mon, 12 Nov 2012 08:08:06 +0100 Subject: [PATCH] support when website is unavailable --- modules/caissedepargne/browser.py | 3 ++- modules/caissedepargne/pages.py | 11 +++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/modules/caissedepargne/browser.py b/modules/caissedepargne/browser.py index 58d56f83b8..50badcdd94 100644 --- a/modules/caissedepargne/browser.py +++ b/modules/caissedepargne/browser.py @@ -22,7 +22,7 @@ from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword -from .pages import LoginPage, IndexPage, ErrorPage +from .pages import LoginPage, IndexPage, ErrorPage, UnavailablePage __all__ = ['CaisseEpargne'] @@ -35,6 +35,7 @@ class CaisseEpargne(BaseBrowser): PAGES = {'https://[^/]+.caisse-epargne.fr/particuliers/ind_pauthpopup.aspx.*': LoginPage, 'https://[^/]+.caisse-epargne.fr/Portail.aspx': IndexPage, 'https://[^/]+.caisse-epargne.fr/login.aspx': ErrorPage, + 'https://[^/]+.caisse-epargne.fr/page_hs_dei_.*.aspx': UnavailablePage, } def is_logged(self): diff --git a/modules/caissedepargne/pages.py b/modules/caissedepargne/pages.py index 5a3e968608..030c8d73b4 100644 --- a/modules/caissedepargne/pages.py +++ b/modules/caissedepargne/pages.py @@ -22,12 +22,12 @@ import re from weboob.tools.mech import ClientForm -from weboob.tools.browser import BasePage, BrokenPageError +from weboob.tools.browser import BasePage, BrokenPageError, BrowserUnavailable from weboob.capabilities.bank import Account from weboob.tools.capabilities.bank.transactions import FrenchTransaction -__all__ = ['LoginPage', 'ErrorPage', 'IndexPage'] +__all__ = ['LoginPage', 'ErrorPage', 'IndexPage', 'UnavailablePage'] class LoginPage(BasePage): @@ -61,6 +61,13 @@ def get_error(self): except BrokenPageError: return None +class UnavailablePage(BasePage): + def on_loaded(self): + try: + raise BrowserUnavailable(self.parser.select(self.document.getroot(), 'div#message_error_hs', 1).text.strip()) + except BrokenPageError: + raise BrowserUnavailable() + class Transaction(FrenchTransaction): PATTERNS = [(re.compile('^CB (?P.*?) FACT (?P
\d{2})(?P\d{2})(?P\d{2})'), FrenchTransaction.TYPE_CARD), -- GitLab