From 5ff52844a55d99cfff1feaa16f993b2bf4ce1f02 Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Sat, 23 Nov 2013 13:08:12 +0100 Subject: [PATCH] fix connection on other kind of accounts --- modules/banquepopulaire/browser.py | 1 + modules/banquepopulaire/pages.py | 13 +++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/modules/banquepopulaire/browser.py b/modules/banquepopulaire/browser.py index 7e38e983..1a19f149 100644 --- a/modules/banquepopulaire/browser.py +++ b/modules/banquepopulaire/browser.py @@ -45,6 +45,7 @@ class BanquePopulaire(BaseBrowser): 'https://[^/]+/portailinternet/Catalogue/Segments/.*.aspx(\?vary=(?P.*))?': HomePage, 'https://[^/]+/portailinternet/Pages/.*.aspx\?vary=(?P.*)': HomePage, 'https://[^/]+/portailinternet/Pages/default.aspx': HomePage, + 'https://[^/]+/portailinternet/Transactionnel/Pages/CyberIntegrationPage.aspx': HomePage, } def __init__(self, website, *args, **kwargs): diff --git a/modules/banquepopulaire/pages.py b/modules/banquepopulaire/pages.py index 6a5e6a26..4acbbcb7 100644 --- a/modules/banquepopulaire/pages.py +++ b/modules/banquepopulaire/pages.py @@ -21,7 +21,7 @@ from urlparse import urlsplit, parse_qsl from decimal import Decimal import re -from mechanize import Cookie +from mechanize import Cookie, FormNotFoundError from weboob.tools.browser import BasePage as _BasePage, BrowserUnavailable, BrokenPageError from weboob.capabilities.bank import Account @@ -135,6 +135,13 @@ class RedirectPage(BasePage): if redirect_url is not None: self.browser.location(self.browser.request_class(self.browser.absurl(redirect_url), None, {'Referer': self.url})) + try: + self.browser.select_form(name="CyberIngtegrationPostForm") + except FormNotFoundError: + pass + else: + self.browser.submit(nologin=True) + class UnavailablePage(BasePage): def on_loaded(self): @@ -219,7 +226,9 @@ class AccountsPage(BasePage): 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: + if script.text is not None and \ + (u"Le service est momentanément indisponible" in script.text or + u"Votre abonnement ne vous permet pas d'accéder à ces services" in script.text): return True return False