fix accounts list on new version of website
This commit is contained in:
parent
a8d8147452
commit
eeed606757
2 changed files with 28 additions and 2 deletions
|
|
@ -79,8 +79,7 @@ class Fortuneo(BaseBrowser):
|
||||||
self.location('/ReloadContext?action=1&')
|
self.location('/ReloadContext?action=1&')
|
||||||
|
|
||||||
def get_history(self, account):
|
def get_history(self, account):
|
||||||
if not self.is_on_page(AccountHistoryPage):
|
self.location(account._link_id)
|
||||||
self.location(account._link_id)
|
|
||||||
return self.page.get_operations(account)
|
return self.page.get_operations(account)
|
||||||
|
|
||||||
def get_accounts_list(self):
|
def get_accounts_list(self):
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,8 @@
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
|
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
|
from lxml.html import etree
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
import re
|
import re
|
||||||
import datetime
|
import datetime
|
||||||
|
|
@ -25,6 +27,7 @@ from weboob.capabilities.bank import Account
|
||||||
from weboob.tools.browser import BasePage, BrowserIncorrectPassword
|
from weboob.tools.browser import BasePage, BrowserIncorrectPassword
|
||||||
from weboob.capabilities import NotAvailable
|
from weboob.capabilities import NotAvailable
|
||||||
from weboob.tools.capabilities.bank.transactions import FrenchTransaction
|
from weboob.tools.capabilities.bank.transactions import FrenchTransaction
|
||||||
|
from weboob.tools.json import json
|
||||||
|
|
||||||
|
|
||||||
__all__ = ['GlobalAccountsList', 'AccountsList', 'AccountHistoryPage']
|
__all__ = ['GlobalAccountsList', 'AccountsList', 'AccountHistoryPage']
|
||||||
|
|
@ -90,6 +93,30 @@ class AccountsList(BasePage):
|
||||||
if len(warn) > 0:
|
if len(warn) > 0:
|
||||||
raise BrowserIncorrectPassword(warn[0].text)
|
raise BrowserIncorrectPassword(warn[0].text)
|
||||||
|
|
||||||
|
# load content of loading divs.
|
||||||
|
divs = []
|
||||||
|
for div in self.document.xpath('//div[starts-with(@id, "as_")]'):
|
||||||
|
loading = div.xpath('.//span[@class="loading"]')
|
||||||
|
if len(loading) == 0:
|
||||||
|
continue
|
||||||
|
|
||||||
|
input = div.xpath('.//input')[0]
|
||||||
|
divs.append([div, input.attrib['name']])
|
||||||
|
|
||||||
|
if len(divs) > 0:
|
||||||
|
args = {}
|
||||||
|
for i, (div, name) in enumerate(divs):
|
||||||
|
args['key%s' % i] = name
|
||||||
|
args['div%s' % i] = div.attrib['id']
|
||||||
|
args['time'] = 0
|
||||||
|
r = self.browser.openurl(self.browser.buildurl('/AsynchAjax', **args))
|
||||||
|
data = json.load(r)
|
||||||
|
|
||||||
|
for i, (div, name) in enumerate(divs):
|
||||||
|
html = data['data'][i]['flux']
|
||||||
|
div.clear()
|
||||||
|
div.insert(0, etree.fromstring(html, parser=etree.HTMLParser()))
|
||||||
|
|
||||||
def need_reload(self):
|
def need_reload(self):
|
||||||
form = self.document.xpath('//form[@name="InformationsPersonnellesForm"]')
|
form = self.document.xpath('//form[@name="InformationsPersonnellesForm"]')
|
||||||
return len(form) > 0
|
return len(form) > 0
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue