diff --git a/modules/sogecartenet/browser.py b/modules/sogecartenet/browser.py index 7187eaffd8c05c6daf6c6489d54ee88434c492a7..ed7656d480653c9c0e023f00e5c8d7e57af148ad 100644 --- a/modules/sogecartenet/browser.py +++ b/modules/sogecartenet/browser.py @@ -20,13 +20,14 @@ from weboob.browser import LoginBrowser, URL, need_login -from .pages import LoginPage, AccountsPage, TransactionsPage +from .pages import LoginPage, AccountsPage, TransactionsPage, PassModificationPage class SogecartesBrowser(LoginBrowser): BASEURL = 'https://www.sogecartenet.fr/' login = URL('/internationalisation/identification', LoginPage) + pass_modification = URL('/internationalisation/./modificationMotPasse.*', PassModificationPage) accounts = URL('/internationalisation/gestionParcCartes', AccountsPage) transactions = URL('/internationalisation/csv/operationsParCarte.*', TransactionsPage) @@ -42,7 +43,7 @@ def do_login(self): "LANGUE": "en", "QUEFAIRE": "LOGIN", } - self.login.open(data=data) + self.login.go(data=data) @need_login def iter_accounts(self): diff --git a/modules/sogecartenet/pages.py b/modules/sogecartenet/pages.py index 376a984440e21dbe9206a450598328f9094a7f04..22f346ed8f72e46165218fcfb77d6b4acfcf8816 100644 --- a/modules/sogecartenet/pages.py +++ b/modules/sogecartenet/pages.py @@ -20,7 +20,7 @@ import requests from weboob.browser.pages import HTMLPage, CsvPage, pagination -from weboob.exceptions import BrowserIncorrectPassword +from weboob.exceptions import BrowserIncorrectPassword, BrowserPasswordExpired from weboob.browser.elements import DictElement, ItemElement, method, TableElement from weboob.browser.filters.standard import CleanText, CleanDecimal, Date, Env, TableCell from weboob.browser.filters.json import Dict @@ -30,6 +30,10 @@ __all__ = ['LoginPage', 'AccountsPage', 'TransactionsPage'] +class PassModificationPage(HTMLPage): + def on_load(self): + raise BrowserPasswordExpired('New pass needed') + class LoginPage(HTMLPage): pass