From 17074947478696d0cda2fc718704a7c8122cc462 Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Wed, 9 Oct 2013 18:24:59 +0200 Subject: [PATCH] get list of all accounts --- modules/banquepopulaire/browser.py | 9 +++++++++ modules/banquepopulaire/pages.py | 7 ++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/modules/banquepopulaire/browser.py b/modules/banquepopulaire/browser.py index 864b6d25..c555ea2d 100644 --- a/modules/banquepopulaire/browser.py +++ b/modules/banquepopulaire/browser.py @@ -36,6 +36,7 @@ class BanquePopulaire(BaseBrowser): 'https://[^/]+/cyber/internet/StartTask.do\?taskInfoOID=mesComptes.*': AccountsPage, 'https://[^/]+/cyber/internet/StartTask.do\?taskInfoOID=maSyntheseGratuite.*': AccountsPage, 'https://[^/]+/cyber/internet/StartTask.do\?taskInfoOID=accueilSynthese.*': AccountsPage, + 'https://[^/]+/cyber/internet/ContinueTask.do\?.*dialogActionPerformed=EQUIPEMENT_COMPLET.*': AccountsPage, 'https://[^/]+/cyber/internet/ContinueTask.do\?.*dialogActionPerformed=SOLDE.*': TransactionsPage, 'https://[^/]+/cyber/internet/Page.do\?.*': TransactionsPage, 'https://[^/]+/cyber/internet/Sort.do\?.*': TransactionsPage, @@ -87,6 +88,13 @@ class BanquePopulaire(BaseBrowser): if self.page.is_error(): raise BrokenPageError('Unable to go on the accounts list page') + self.select_form(nr=0) + self.set_all_readonly(False) + self['dialogActionPerformed'] = 'EQUIPEMENT_COMPLET' + self.submit() + + self.token = self.page.get_token() + return self.page.get_list() def get_account(self, id): @@ -111,6 +119,7 @@ class BanquePopulaire(BaseBrowser): while True: assert self.is_on_page(TransactionsPage) + self.token = self.page.get_token() for tr in self.page.get_history(): yield tr diff --git a/modules/banquepopulaire/pages.py b/modules/banquepopulaire/pages.py index da72bae4..bf75a48d 100644 --- a/modules/banquepopulaire/pages.py +++ b/modules/banquepopulaire/pages.py @@ -23,7 +23,7 @@ from decimal import Decimal import re from mechanize import Cookie -from weboob.tools.browser import BasePage, BrowserUnavailable, BrokenPageError +from weboob.tools.browser import BasePage as _BasePage, BrowserUnavailable, BrokenPageError from weboob.capabilities.bank import Account from weboob.tools.capabilities.bank.transactions import FrenchTransaction @@ -55,6 +55,11 @@ class WikipediaARC4(object): return ''.join(output) +class BasePage(_BasePage): + def get_token(self): + return self.parser.select(self.document.getroot(), '//form//input[@name="token"]', 1, 'xpath').attrib['value'] + + class RedirectPage(BasePage): """ var i = 'lyhrnu551jo42yfzx0jm0sqk';