From 406297ac9fccd2047ce8bdaa3fca9e6303592e78 Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Mon, 16 Mar 2015 15:43:53 +0100 Subject: [PATCH] fetch detail of transactions and use it in Transaction.raw --- modules/lcl/browser.py | 4 +++- modules/lcl/pages.py | 12 +++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/modules/lcl/browser.py b/modules/lcl/browser.py index 84f0fdfd..e8ebbe89 100644 --- a/modules/lcl/browser.py +++ b/modules/lcl/browser.py @@ -47,7 +47,9 @@ class LCLBrowser(LoginBrowser): '/outil/UAUT/Contract/selectContracts.*', ContractsPage) accounts = URL('/outil/UWSP/Synthese', AccountsPage) - history = URL('/outil/UWLM/ListeMouvements.*/accesListeMouvements.*', AccountHistoryPage) + history = URL('/outil/UWLM/ListeMouvements.*/accesListeMouvements.*', + '/outil/UWLM/DetailMouvement.*/accesDetailMouvement.*', + AccountHistoryPage) cb_list = URL('/outil/UWCB/UWCBEncours.*/listeCBCompte.*', CBListPage) cb_history = URL('/outil/UWCB/UWCBEncours.*/listeOperations.*', CBHistoryPage) skip = URL('/outil/UAUT/Contrat/selectionnerContrat.*', diff --git a/modules/lcl/pages.py b/modules/lcl/pages.py index 2e392489..3eefe0cf 100644 --- a/modules/lcl/pages.py +++ b/modules/lcl/pages.py @@ -29,8 +29,9 @@ from weboob.capabilities.bank import Account from weboob.browser.elements import method, ListElement, ItemElement, SkipItem from weboob.exceptions import ParseError from weboob.browser.pages import LoggedPage, HTMLPage, FormNotFound +from weboob.browser.filters.html import Attr from weboob.browser.filters.standard import CleanText, Field, Regexp, Format, \ - CleanDecimal, Map + CleanDecimal, Map, AsyncLoad, Async from weboob.exceptions import BrowserUnavailable from weboob.tools.capabilities.bank.transactions import FrenchTransaction from weboob.tools.captcha.virtkeyboard import MappedVirtKeyboard, VirtKeyboardError @@ -188,7 +189,7 @@ class AccountsPage(LoggedPage, HTMLPage): class Transaction(FrenchTransaction): PATTERNS = [(re.compile('^(?PCB) (?PRETRAIT) DU (?P
\d+)/(?P\d+)'), FrenchTransaction.TYPE_WITHDRAWAL), - (re.compile('^(?P(PRLV|PE)) (?P.*)'), + (re.compile('^(?P(PRLV|PE)( SEPA)?) (?P.*)'), FrenchTransaction.TYPE_ORDER), (re.compile('^(?PCHQ\.) (?P.*)'), FrenchTransaction.TYPE_CHECK), @@ -220,6 +221,7 @@ class AccountHistoryPage(LoggedPage, HTMLPage): col_raw = [u'Vos opérations', u'Libellé'] class item(Transaction.TransactionElement): + load_details = Attr('.', 'href', default=None) & AsyncLoad def condition(self): return self.parent.get_colnum('date') is not None and \ len(self.el.findall('td')) >= 3 and \ @@ -227,7 +229,11 @@ class AccountHistoryPage(LoggedPage, HTMLPage): not 'tableTr' in self.el.get('class') def validate(self, obj): - return obj.category != 'RELEVE CB' + if obj.category == 'RELEVE CB': + return + + obj.raw = Async('details', CleanText(u'//td[contains(text(), "Libellé")]/following-sibling::*[1]', default=obj.raw))(self) + return True def get_operations(self): return self._get_operations()