fix new list of accounts and new URLs
This commit is contained in:
parent
40246c8606
commit
934bf41e49
2 changed files with 18 additions and 30 deletions
|
|
@ -36,10 +36,13 @@ class HSBC(LoginBrowser):
|
||||||
|
|
||||||
connection = URL(r'https://www.hsbc.fr/1/2/hsbc-france/particuliers/connexion', LoginPage)
|
connection = URL(r'https://www.hsbc.fr/1/2/hsbc-france/particuliers/connexion', LoginPage)
|
||||||
login = URL(r'https://www.hsbc.fr/1/*', LoginPage)
|
login = URL(r'https://www.hsbc.fr/1/*', LoginPage)
|
||||||
cptPage = URL(r'/cgi-bin/emcgi.*\&CPT_IdPrestation.*',
|
cptPage = URL(r'/cgi-bin/emcgi.*\&Cpt=.*',
|
||||||
|
r'/cgi-bin/emcgi.*\&Epa=.*',
|
||||||
|
r'/cgi-bin/emcgi.*\&CPT_IdPrestation.*',
|
||||||
r'/cgi-bin/emcgi.*\&Ass_IdPrestation.*',
|
r'/cgi-bin/emcgi.*\&Ass_IdPrestation.*',
|
||||||
CPTOperationPage)
|
CPTOperationPage)
|
||||||
cbPage = URL(r'/cgi-bin/emcgi.*\&CB_IdPrestation.*',
|
cbPage = URL(r'/cgi-bin/emcgi.*\&Cb=.*',
|
||||||
|
r'/cgi-bin/emcgi.*\&CB_IdPrestation.*',
|
||||||
CBOperationPage)
|
CBOperationPage)
|
||||||
appGone = URL(r'/.*_absente.html',
|
appGone = URL(r'/.*_absente.html',
|
||||||
r'/pm_absent_inter.html',
|
r'/pm_absent_inter.html',
|
||||||
|
|
@ -51,6 +54,9 @@ class HSBC(LoginBrowser):
|
||||||
self.secret = secret
|
self.secret = secret
|
||||||
LoginBrowser.__init__(self, username, password, *args, **kwargs)
|
LoginBrowser.__init__(self, username, password, *args, **kwargs)
|
||||||
|
|
||||||
|
def load_state(self, state):
|
||||||
|
return
|
||||||
|
|
||||||
def prepare_request(self, req):
|
def prepare_request(self, req):
|
||||||
preq = super(HSBC, self).prepare_request(req)
|
preq = super(HSBC, self).prepare_request(req)
|
||||||
|
|
||||||
|
|
@ -59,11 +65,8 @@ class HSBC(LoginBrowser):
|
||||||
|
|
||||||
return preq
|
return preq
|
||||||
|
|
||||||
def home(self):
|
|
||||||
return self.login.go()
|
|
||||||
|
|
||||||
def do_login(self):
|
def do_login(self):
|
||||||
self.connection.stay_or_go()
|
self.connection.go()
|
||||||
self.page.login(self.username)
|
self.page.login(self.username)
|
||||||
|
|
||||||
no_secure_key_link = self.page.get_no_secure_key()
|
no_secure_key_link = self.page.get_no_secure_key()
|
||||||
|
|
@ -95,9 +98,12 @@ class HSBC(LoginBrowser):
|
||||||
|
|
||||||
@need_login
|
@need_login
|
||||||
def get_history(self, account):
|
def get_history(self, account):
|
||||||
|
|
||||||
if account._link_id is None:
|
if account._link_id is None:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if account._link_id.startswith('javascript'):
|
||||||
|
raise NotImplementedError()
|
||||||
|
|
||||||
self.location(self.accounts_list[account.id]._link_id)
|
self.location(self.accounts_list[account.id]._link_id)
|
||||||
|
|
||||||
#If we relogin on hsbc, all link have change
|
#If we relogin on hsbc, all link have change
|
||||||
|
|
|
||||||
|
|
@ -72,33 +72,14 @@ class AccountsPage(LoggedPage, HTMLPage):
|
||||||
def filter(self, label):
|
def filter(self, label):
|
||||||
return Account.TYPE_UNKNOWN
|
return Account.TYPE_UNKNOWN
|
||||||
|
|
||||||
obj_id = Env('id')
|
obj_id = CleanText('./td[2]', replace=[('.', ''), (' ', '')])
|
||||||
obj_label = Label(CleanText('./td[1]/a'))
|
obj_label = Label(CleanText('./td[1]/a'))
|
||||||
obj_coming = Env('coming')
|
obj_coming = Env('coming')
|
||||||
obj_balance = Env('balance')
|
obj_balance = CleanDecimal('./td[3]', replace_dots=True)
|
||||||
obj_currency = FrenchTransaction.Currency('./td[2] | ./td[3]')
|
obj_currency = FrenchTransaction.Currency('./td[3]')
|
||||||
obj__link_id = Link('./td[1]/a')
|
obj__link_id = Link('./td[1]/a')
|
||||||
obj_type = Type(Field('label'))
|
obj_type = Type(Field('label'))
|
||||||
|
obj_coming = NotAvailable
|
||||||
def parse(self, el):
|
|
||||||
link = el.xpath('./td[1]/a')[0].get('href', '')
|
|
||||||
url = urlparse(link)
|
|
||||||
p = parse_qs(url.query)
|
|
||||||
|
|
||||||
if 'CPT_IdPrestation' in p:
|
|
||||||
id = p['CPT_IdPrestation'][0]
|
|
||||||
elif 'Ass_IdPrestation' in p:
|
|
||||||
id = p['Ass_IdPrestation'][0]
|
|
||||||
elif 'CB_IdPrestation' in p:
|
|
||||||
id = p['CB_IdPrestation'][0]
|
|
||||||
else:
|
|
||||||
raise SkipItem()
|
|
||||||
|
|
||||||
balance = CleanDecimal('./td[3]', replace_dots=True)(self)
|
|
||||||
|
|
||||||
self.env['id'] = id
|
|
||||||
self.env['balance'] = balance
|
|
||||||
self.env['coming'] = NotAvailable
|
|
||||||
|
|
||||||
|
|
||||||
class Pagination(object):
|
class Pagination(object):
|
||||||
|
|
@ -147,6 +128,7 @@ class CPTOperationPage(LoggedPage, HTMLPage):
|
||||||
class AppGonePage(HTMLPage):
|
class AppGonePage(HTMLPage):
|
||||||
def on_load(self):
|
def on_load(self):
|
||||||
self.browser.app_gone = True
|
self.browser.app_gone = True
|
||||||
|
self.logger.info('Application has gone. Relogging...')
|
||||||
self.browser.do_logout()
|
self.browser.do_logout()
|
||||||
self.browser.do_login()
|
self.browser.do_login()
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue