Display renew confirmation/errors
This commit is contained in:
parent
03f998a33f
commit
65251c4ceb
5 changed files with 24 additions and 10 deletions
|
|
@ -35,7 +35,7 @@ class ChampslibresBackend(BaseBackend, ICapBook):
|
|||
VERSION = '0.c'
|
||||
DESCRIPTION = 'Champs Libres (Rennes) Library'
|
||||
LICENSE = 'AGPLv3+'
|
||||
CONFIG = BackendConfig(Value('login', label='Account ID', regexp='^\d{1,15}|$'),
|
||||
CONFIG = BackendConfig(Value('login', label='Account ID', regexp='^\d{1,15}|$'),
|
||||
ValueBackendPassword('password', label='Password of account'),
|
||||
)
|
||||
BROWSER = ChampslibresBrowser
|
||||
|
|
@ -47,8 +47,6 @@ class ChampslibresBackend(BaseBackend, ICapBook):
|
|||
browser.login()
|
||||
return browser
|
||||
|
||||
|
||||
|
||||
def get_rented(self):
|
||||
for book in self.browser.get_rented_books_list():
|
||||
yield book
|
||||
|
|
@ -57,8 +55,7 @@ class ChampslibresBackend(BaseBackend, ICapBook):
|
|||
raise NotImplementedError()
|
||||
|
||||
def renew_book(self, id):
|
||||
self.browser.renew(id)
|
||||
|
||||
return self.browser.renew(id)
|
||||
|
||||
def iter_books(self):
|
||||
#for book in self.get_booked():
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ __all__ = ['ChampslibresBrowser']
|
|||
# Browser
|
||||
class ChampslibresBrowser(BaseBrowser):
|
||||
PROTOCOL = 'http'
|
||||
ENCODING = None
|
||||
ENCODING = 'utf-8'
|
||||
PAGES = {
|
||||
'.*login.*': LoginPage,
|
||||
'.*home\?lang=frf.*': HomePage,
|
||||
|
|
@ -66,6 +66,7 @@ class ChampslibresBrowser(BaseBrowser):
|
|||
self.location('https://sbib.si.leschampslibres.fr/patroninfo~S1*frf/%s/items' % self.iduser)
|
||||
self.page.renew(id)
|
||||
self.page.confirm_renew()
|
||||
return self.page.read_renew(id)
|
||||
|
||||
# TODO
|
||||
def get_booked_books_list(self):
|
||||
|
|
|
|||
|
|
@ -18,9 +18,10 @@
|
|||
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from datetime import date
|
||||
from weboob.capabilities.library import Book
|
||||
from weboob.capabilities.library import Book, Renew
|
||||
from weboob.tools.browser import BasePage
|
||||
from weboob.tools.mech import ClientForm
|
||||
from weboob.tools.misc import html2text
|
||||
|
||||
|
||||
class SkipPage(BasePage):
|
||||
|
|
@ -62,11 +63,20 @@ class RentedPage(BasePage):
|
|||
self.browser.controls.append(ClientForm.TextControl('text', 'requestRenewSome', {'value': 'requestRenewSome'}))
|
||||
self.browser.submit()
|
||||
|
||||
def confirm_renew(self):
|
||||
def confirm_renew(self):
|
||||
self.browser.select_form("checkout_form")
|
||||
self.browser.form.set_all_readonly(False)
|
||||
self.browser.submit(name='renewsome')
|
||||
|
||||
def read_renew(self, id):
|
||||
for tr in self.document.getroot().xpath('//tr[@class="patFuncEntry"]'):
|
||||
if len(tr.xpath('td/input[@value="%s"]' % id)) > 0:
|
||||
message = self.browser.parser.tostring(tr.xpath('td[@class="patFuncStatus"]')[0])
|
||||
renew = Renew(id)
|
||||
renew.message = html2text(message).replace('\n', '')
|
||||
return renew
|
||||
|
||||
|
||||
class HistoryPage(BasePage):
|
||||
pass
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue