diff --git a/modules/ing/backend.py b/modules/ing/backend.py index 8d8c56ca..8abb73dd 100644 --- a/modules/ing/backend.py +++ b/modules/ing/backend.py @@ -21,7 +21,7 @@ # python2.5 compatibility from __future__ import with_statement -from weboob.capabilities.bank import ICapBank, AccountNotFound +from weboob.capabilities.bank import ICapBank, AccountNotFound, Account from weboob.tools.backend import BaseBackend, BackendConfig from weboob.tools.value import ValueBackendPassword @@ -72,3 +72,10 @@ class INGBackend(BaseBackend, ICapBank): with self.browser: for history in self.browser.get_history(account.id): yield history + + def iter_transfer_recipients(self, account): + with self.browser: + if not isinstance(account, Account): + account = self.get_account(account) + for recipient in self.browser.get_recipients(account): + yield recipient diff --git a/modules/ing/browser.py b/modules/ing/browser.py index 19efc366..6dd8d7fc 100644 --- a/modules/ing/browser.py +++ b/modules/ing/browser.py @@ -20,7 +20,7 @@ import hashlib from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from .pages import AccountsList, LoginPage, LoginPage2, \ - AccountHistory + AccountHistory, TransferPage __all__ = ['Ing'] @@ -34,7 +34,9 @@ class Ing(BaseBrowser): '.*displayLogin.jsf': LoginPage, '.*displayLogin.jsf.*': LoginPage2, '.*accountDetail.jsf.*': AccountHistory, - '.*displayTRHistoriqueLA.*': AccountHistory + '.*displayTRHistoriqueLA.*': AccountHistory, + '.*transferManagement.jsf': TransferPage, + '.*DisplayDoTransferCommand.*': TransferPage } CERTHASH = "fba557b387cccc3d71ba038f9ef1de4d71541d7954744c79f6a7ff5f3cd4dc12" @@ -62,7 +64,7 @@ class Ing(BaseBrowser): self.page.prelogin(self.username, self.birthday) self.page.login(self.password) if self.page.error(): - raise BrowserIncorrectPassword() + raise BrowserIncorrectPassword() def get_accounts_list(self): if not self.is_on_page(AccountsList): @@ -112,3 +114,8 @@ class Ing(BaseBrowser): # XXX server sends an unknown mimetype, we overload viewing_html() above to # prevent this issue. self.page.next_page() + + def get_recipients(self, account): + if not self.is_on_page(TransferPage): + self.location('https://secure.ingdirect.fr/protected/pages/cc/transfer/transferManagement.jsf') + return self.page.get_recipients() diff --git a/modules/ing/pages/__init__.py b/modules/ing/pages/__init__.py index 161fbd1b..4bb4c499 100644 --- a/modules/ing/pages/__init__.py +++ b/modules/ing/pages/__init__.py @@ -21,10 +21,12 @@ from .accounts_list import AccountsList from .account_history import AccountHistory from .login import LoginPage, LoginPage2, ConfirmPage, MessagePage +from .transfer import TransferPage class AccountPrelevement(AccountsList): pass __all__ = ['AccountsList', 'AccountHistory', 'LoginPage', - 'LoginPage2', 'ConfirmPage', 'MessagePage', 'AccountPrelevement'] + 'LoginPage2', 'ConfirmPage', 'MessagePage', 'AccountPrelevement', + 'TransferPage']