get IBAN of accounts
This commit is contained in:
parent
365d7cfd4e
commit
7afecb275a
3 changed files with 20 additions and 5 deletions
|
|
@ -155,6 +155,7 @@ class AccountsPage(BEPage):
|
||||||
else:
|
else:
|
||||||
account._link_id = parse_qs(link.attrib['href'])['ch4'][0]
|
account._link_id = parse_qs(link.attrib['href'])['ch4'][0]
|
||||||
account.id = to_unicode(tdid.text.strip().replace(' ', ''))
|
account.id = to_unicode(tdid.text.strip().replace(' ', ''))
|
||||||
|
account.iban = 'FR76' + account.id
|
||||||
# just in case we are showing the converted balances
|
# just in case we are showing the converted balances
|
||||||
account._main_currency = Account.get_currency(tdcur.text)
|
account._main_currency = Account.get_currency(tdcur.text)
|
||||||
# we have to ignore those accounts, because using NotAvailable
|
# we have to ignore those accounts, because using NotAvailable
|
||||||
|
|
|
||||||
|
|
@ -39,14 +39,23 @@ class AccountsList(Page):
|
||||||
def on_loaded(self):
|
def on_loaded(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def _parse_iban(self, account, url):
|
||||||
|
m = re.search('ch4=(\w+)', url)
|
||||||
|
if m:
|
||||||
|
account.iban = unicode(m.group(1))
|
||||||
|
|
||||||
def _parse_account_group(self, table):
|
def _parse_account_group(self, table):
|
||||||
typename = unicode(table.attrib.get('summary', '').replace('Liste des contrats/comptes ', ''))
|
typename = unicode(table.attrib.get('summary', '').replace('Liste des contrats/comptes ', ''))
|
||||||
typeid = self.ACCOUNT_TYPES.get(typename, Account.TYPE_UNKNOWN)
|
typeid = self.ACCOUNT_TYPES.get(typename, Account.TYPE_UNKNOWN)
|
||||||
for tr in table.xpath('.//tr[not(@class)]'):
|
account = None
|
||||||
|
for tr in table.xpath('.//tr'):
|
||||||
if tr.find('td') is not None and tr.find('td').attrib.get('class', '') == 'typeTitulaire':
|
if tr.find('td') is not None and tr.find('td').attrib.get('class', '') == 'typeTitulaire':
|
||||||
account = self._parse_account(tr)
|
account = self._parse_account(tr)
|
||||||
account.type = typeid
|
account.type = typeid
|
||||||
yield account
|
yield account
|
||||||
|
elif tr.get('class', '') == 'listeActionBig' and account is not None:
|
||||||
|
self._parse_iban(account, tr.xpath('.//a')[-1].get('href', ''))
|
||||||
|
account = None
|
||||||
|
|
||||||
def _parse_account(self, tr):
|
def _parse_account(self, tr):
|
||||||
account = Account()
|
account = Account()
|
||||||
|
|
@ -84,18 +93,18 @@ class AccountsList(Page):
|
||||||
return Decimal(FrenchTransaction.clean_amount(elem.text))
|
return Decimal(FrenchTransaction.clean_amount(elem.text))
|
||||||
|
|
||||||
def get_list(self):
|
def get_list(self):
|
||||||
l = []
|
accounts = []
|
||||||
for table in self.document.xpath('//table[@class="tableCompte"]'):
|
for table in self.document.xpath('//table[@class="tableCompte"]'):
|
||||||
for account in self._parse_account_group(table):
|
for account in self._parse_account_group(table):
|
||||||
l.append(account)
|
accounts.append(account)
|
||||||
|
|
||||||
if len(l) == 0:
|
if len(accounts) == 0:
|
||||||
# oops, no accounts? check if we have not exhausted the allowed use
|
# oops, no accounts? check if we have not exhausted the allowed use
|
||||||
# of this password
|
# of this password
|
||||||
for img in self.document.getroot().cssselect('img[align="middle"]'):
|
for img in self.document.getroot().cssselect('img[align="middle"]'):
|
||||||
if img.attrib.get('alt', '') == 'Changez votre code secret':
|
if img.attrib.get('alt', '') == 'Changez votre code secret':
|
||||||
raise BrowserPasswordExpired('Your password has expired')
|
raise BrowserPasswordExpired('Your password has expired')
|
||||||
return l
|
return accounts
|
||||||
|
|
||||||
def get_execution_id(self):
|
def get_execution_id(self):
|
||||||
return self.document.xpath('//input[@name="_flowExecutionKey"]')[0].attrib['value']
|
return self.document.xpath('//input[@name="_flowExecutionKey"]')[0].attrib['value']
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,11 @@ class ProAccountsList(Page):
|
||||||
account._link_id = p.get('ch4', None)
|
account._link_id = p.get('ch4', None)
|
||||||
account._stp = p.get('stp', None)
|
account._stp = p.get('stp', None)
|
||||||
|
|
||||||
|
for input_tag in tr.xpath('.//input[starts-with(@id, "urlRib")]'):
|
||||||
|
m = re.search('ch4=(\w+)', input_tag.get('value', ''))
|
||||||
|
if m:
|
||||||
|
account.iban = unicode(m.group(1))
|
||||||
|
|
||||||
accounts.append(account)
|
accounts.append(account)
|
||||||
|
|
||||||
# If there are also personnal accounts linked, display the page and iter on them.
|
# If there are also personnal accounts linked, display the page and iter on them.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue