From 8c0dbe18f039bc78ff0dd69cd7a1e38c4fa4f056 Mon Sep 17 00:00:00 2001 From: Florent Fourcot Date: Thu, 15 Mar 2012 21:18:40 +0100 Subject: [PATCH] Fix some strange effects with login --- modules/champslibres/backend.py | 7 ++++++- modules/champslibres/browser.py | 14 ++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/modules/champslibres/backend.py b/modules/champslibres/backend.py index 422416b9..696ca66f 100644 --- a/modules/champslibres/backend.py +++ b/modules/champslibres/backend.py @@ -41,8 +41,13 @@ class ChampslibresBackend(BaseBackend, ICapBook): BROWSER = ChampslibresBrowser def create_default_browser(self): - return self.create_browser(self.config['login'].get(), + browser = self.create_browser(self.config['login'].get(), self.config['password'].get()) + # we have to force the login before to lauch any actions + browser.login() + return browser + + def get_rented(self): for book in self.browser.get_rented_books_list(): diff --git a/modules/champslibres/browser.py b/modules/champslibres/browser.py index a9b4d71b..9e36c245 100644 --- a/modules/champslibres/browser.py +++ b/modules/champslibres/browser.py @@ -36,9 +36,7 @@ class ChampslibresBrowser(BaseBrowser): 'http://.*/index.aspx\?IdPage=429': HistoryPage, '.*patroninfo.*': RentedPage, } - - def __init__(self, *args, **kwargs): - BaseBrowser.__init__(self, *args, **kwargs) + iduser = None def is_logged(self): @@ -51,16 +49,16 @@ class ChampslibresBrowser(BaseBrowser): if not self.is_on_page(HomePage): self.location('https://sbib.si.leschampslibres.fr/iii/cas/login?null', no_login=True) self.page.login(self.username, self.password) + # Get home and get ID + self.location('http://opac.si.leschampslibres.fr/iii/encore/home?lang=frf', no_login=True) + self.iduser = self.page.get_id() + self.logger.debug('Get ID ' + self.iduser) if not self.is_logged(): raise BrowserIncorrectPassword() - # Get home and get ID - self.location('http://opac.si.leschampslibres.fr/iii/encore/home?lang=frf') - self.id = self.page.get_id() - self.logger.debug('Get ID ' + self.id) def get_rented_books_list(self): if not self.is_on_page(RentedPage): - self.location('https://sbib.si.leschampslibres.fr/patroninfo~S1*frf/1123477/items') + self.location('https://sbib.si.leschampslibres.fr/patroninfo~S1*frf/%s/items' % self.iduser) return self.page.get_list() # TODO