diff --git a/modules/caissedepargne/browser.py b/modules/caissedepargne/browser.py index 58d56f83b8e53b973315163de9b869fbd4f6e262..50badcdd94467b9ac3869379a762763bfd8a5807 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 5a3e968608fe39e0b57708a13ee85678b58442d8..030c8d73b42fa634f7558f1628da6edb675cd2a6 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),