diff --git a/modules/cmso/web/browser.py b/modules/cmso/web/browser.py index 3de40228..e4e31118 100644 --- a/modules/cmso/web/browser.py +++ b/modules/cmso/web/browser.py @@ -24,6 +24,7 @@ from itertools import chain from weboob.exceptions import BrowserHTTPError, BrowserIncorrectPassword from weboob.browser import LoginBrowser, URL, need_login +from weboob.tools.date import LinearDateGuesser from .pages import LoginPage, AccountsPage, HistoryPage @@ -71,4 +72,6 @@ class CmsoProBrowser(LoginBrowser): first_page = self.page rest_page = self.history.go(data=query) - return chain(first_page.iter_history(), rest_page.iter_history()) + date_guesser = LinearDateGuesser() + + return chain(first_page.iter_history(date_guesser=date_guesser), rest_page.iter_history(date_guesser=date_guesser)) diff --git a/modules/cmso/web/pages.py b/modules/cmso/web/pages.py index 4dca8fbb..a8e39226 100644 --- a/modules/cmso/web/pages.py +++ b/modules/cmso/web/pages.py @@ -22,10 +22,9 @@ import datetime from weboob.browser.pages import HTMLPage, LoggedPage from weboob.browser.elements import ListElement, ItemElement, method -from weboob.browser.filters.standard import CleanText, CleanDecimal, Regexp, DateGuesser +from weboob.browser.filters.standard import CleanText, CleanDecimal, Regexp, DateGuesser, Env from weboob.browser.filters.html import Link from weboob.capabilities.bank import Account -from weboob.tools.date import LinearDateGuesser from ..transaction import Transaction @@ -71,10 +70,10 @@ class CmsoTransactionElement(ItemElement): class HistoryPage(LoggedPage, HTMLPage): - def iter_history(self): + def iter_history(self, *args, **kwargs): if self.doc.xpath('//a[@href="1-situationGlobaleProfessionnel.act"]'): - return self.iter_history_rest_page() - return self.iter_history_first_page() + return self.iter_history_rest_page(*args, **kwargs) + return self.iter_history_first_page(*args, **kwargs) @method class iter_history_first_page(CmsoListElement): @@ -83,7 +82,7 @@ class HistoryPage(LoggedPage, HTMLPage): return obj.date >= datetime.date.today().replace(day=1) def date(selector): - return DateGuesser(CleanText(selector), LinearDateGuesser()) | Transaction.Date(selector) + return DateGuesser(CleanText(selector), Env('date_guesser')) | Transaction.Date(selector) obj_date = date('./td[1]') obj_vdate = date('./td[2]') diff --git a/modules/groupamaes/browser.py b/modules/groupamaes/browser.py index 9efb780a..b760483c 100644 --- a/modules/groupamaes/browser.py +++ b/modules/groupamaes/browser.py @@ -20,6 +20,7 @@ from weboob.browser import LoginBrowser, URL, need_login from weboob.exceptions import BrowserIncorrectPassword +from weboob.tools.date import LinearDateGuesser from .pages import LoginPage, LoginErrorPage, AvoirPage, OperationsTraiteesPage, OperationsFuturesPage @@ -50,12 +51,12 @@ class GroupamaesBrowser(LoginBrowser): @need_login def get_history(self): - transactions = list(self.operations_traitees.go().get_history()) + transactions = list(self.operations_traitees.go().get_history(date_guesser=LinearDateGuesser())) transactions.sort(key=lambda tr: tr.rdate, reverse=True) return transactions @need_login def get_coming(self): - transactions = list(self.operations_futures.go().get_list()) + transactions = list(self.operations_futures.go().get_list(date_guesser=LinearDateGuesser())) transactions.sort(key=lambda tr: tr.rdate, reverse=True) return transactions diff --git a/modules/groupamaes/pages.py b/modules/groupamaes/pages.py index 202c7373..d49d9933 100644 --- a/modules/groupamaes/pages.py +++ b/modules/groupamaes/pages.py @@ -20,9 +20,8 @@ from weboob.browser.pages import HTMLPage, LoggedPage from weboob.browser.elements import TableElement, ItemElement, method -from weboob.browser.filters.standard import CleanText, CleanDecimal, TableCell, Date +from weboob.browser.filters.standard import CleanText, CleanDecimal, TableCell, Date, Env from weboob.capabilities.bank import Account, Transaction -from weboob.tools.date import LinearDateGuesser class LoginPage(HTMLPage): @@ -74,7 +73,7 @@ class OperationsFuturesPage(LoggedPage, HTMLPage): def condition(self): return u'Aucune opération en attente' not in CleanText(TableCell('date'))(self) - obj_date = Date(CleanText(TableCell('date')), LinearDateGuesser()) + obj_date = Date(CleanText(TableCell('date')), Env('date_guesser')) obj_type = Transaction.TYPE_UNKNOWN obj_label = CleanText(TableCell('operation')) obj_amount = CleanDecimal(TableCell('montant'), replace_dots=True) @@ -96,7 +95,7 @@ class OperationsTraiteesPage(LoggedPage, HTMLPage): def condition(self): return u'Aucune opération' not in CleanText(TableCell('date'))(self) - obj_date = Date(CleanText(TableCell('date')), LinearDateGuesser()) + obj_date = Date(CleanText(TableCell('date')), Env('date_guesser')) obj_type = Transaction.TYPE_UNKNOWN obj_label = CleanText(TableCell('operation')) obj_amount = CleanDecimal(TableCell('montant'), replace_dots=True)