correctly get token only when available

This commit is contained in:
Romain Bignon 2015-06-02 17:10:06 +02:00 committed by Romain Bignon
commit be43326ec5
2 changed files with 12 additions and 4 deletions

View file

@ -63,6 +63,7 @@ class BanquePopulaire(Browser):
def __init__(self, website, *args, **kwargs):
self.DOMAIN = website
self.token = None
Browser.__init__(self, *args, **kwargs)
@ -92,11 +93,11 @@ class BanquePopulaire(Browser):
def go_on_accounts_list(self):
for taskInfoOID in self.ACCOUNT_URLS:
self.location(self.buildurl('/cyber/internet/StartTask.do', taskInfoOID=taskInfoOID, token=self.page.get_token()))
self.location(self.buildurl('/cyber/internet/StartTask.do', taskInfoOID=taskInfoOID, token=self.token))
if not self.page.is_error():
if self.page.pop_up():
self.logger.debug('Popup displayed, retry')
self.location(self.buildurl('/cyber/internet/StartTask.do', taskInfoOID=taskInfoOID, token=self.page.get_token()))
self.location(self.buildurl('/cyber/internet/StartTask.do', taskInfoOID=taskInfoOID, token=self.token))
self.ACCOUNT_URLS = [taskInfoOID]
break
else:
@ -126,10 +127,10 @@ class BanquePopulaire(Browser):
if 'prevAction' in next_page:
params = self.page.get_params()
params['dialogActionPerformed'] = next_page.pop('prevAction')
params['token'] = self.page.build_token(self.page.get_token())
params['token'] = self.page.build_token(self.token)
self.location('/cyber/internet/ContinueTask.do', urllib.urlencode(params))
next_page['token'] = self.page.build_token(self.page.get_token())
next_page['token'] = self.page.build_token(self.token)
self.location('/cyber/internet/ContinueTask.do', urllib.urlencode(next_page))
for a in self.page.iter_accounts(next_pages):

View file

@ -61,6 +61,13 @@ class BasePage(_BasePage):
def get_token(self):
return self.parser.select(self.document.getroot(), '//form//input[@name="token"]', 1, 'xpath').attrib['value']
def on_loaded(self):
if not self.is_error():
self.browser.token = self.get_token()
def is_error(self):
return False
def build_token(self, token):
"""
These fucking faggots have introduced a new protection on the token.