diff --git a/modules/delubac/browser.py b/modules/delubac/browser.py index 0f308aed..ed7f6104 100644 --- a/modules/delubac/browser.py +++ b/modules/delubac/browser.py @@ -20,7 +20,7 @@ from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword -from .pages import LoginPage, DashboardPage, OperationsPage +from .pages import LoginPage, DashboardPage, OperationsPage, LCRPage __all__ = ['DelubacBrowser'] @@ -39,6 +39,7 @@ class DelubacBrowser(BaseBrowser): '%s://%s/(simpleIndex|index).do(\;.*)?' % (PROTOCOL, DOMAIN): LoginPage, '%s://%s/tbord.do(\?.*)?' % (PROTOCOL, DOMAIN): DashboardPage, '%s://%s/releve.do(\?.*)?' % (PROTOCOL, DOMAIN): OperationsPage, + '%s://%s/encoursList.do(\?.*)?' % (PROTOCOL, DOMAIN): LCRPage, } PAGES_REV = { diff --git a/modules/delubac/pages.py b/modules/delubac/pages.py index a56627a1..d242c14e 100644 --- a/modules/delubac/pages.py +++ b/modules/delubac/pages.py @@ -26,7 +26,7 @@ from weboob.tools.browser import BasePage from weboob.tools.capabilities.bank.transactions import FrenchTransaction -__all__ = ['LoginPage', 'DashboardPage', 'OperationsPage'] +__all__ = ['LoginPage', 'DashboardPage', 'OperationsPage', 'LCRPage'] class LoginPage(BasePage): @@ -97,6 +97,24 @@ class OperationsPage(BasePage): if next_button: return next_button[0] +class LCRPage(OperationsPage): + def iter_history(self): + date = None + for line in self.document.xpath('//table[@id="encoursTable"]/tbody/tr'): + if line.attrib.get('class', '').startswith('PL_LIGLST_'): + ref = self.parser.tocleanstring(line.xpath('./td[2]')[0]) + tr = Transaction(ref) + + raw = self.parser.tocleanstring(line.xpath('./td[1]')[0]) + amount = self.parser.tocleanstring(line.xpath('./td')[-1]) + tr.parse(date=date, raw=raw) + tr.set_amount(amount) + yield tr + elif line.find('td').attrib.get('class', '').startswith('PL_TOT'): + m = re.search('(\d+/\d+/\d+)', line.xpath('./td')[0].text) + if m: + date = m.group(1) + class Transaction(FrenchTransaction): PATTERNS = [(re.compile('^(?:Vir(?:ement)?|VRT) (?P.*)', re.I),