From bcd63ee3e7cf0eef3607ed1a2f71636e22d02a8c Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Thu, 11 Mar 2010 17:40:26 +0100 Subject: [PATCH] backported some aum stuff --- weboob/backends/aum/adopte.py | 10 +++++++++- weboob/tools/browser.py | 11 ++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/weboob/backends/aum/adopte.py b/weboob/backends/aum/adopte.py index f36291f8..f3ac3c68 100644 --- a/weboob/backends/aum/adopte.py +++ b/weboob/backends/aum/adopte.py @@ -65,6 +65,10 @@ class AdopteUnMec(Browser): 'http://www.adopteunmec.com/(\w+)': ProfilePage, # a custom profile url } + def __init__(self, *args, **kwargs): + Browser.__init__(self, *args, **kwargs) + self.my_id = 0 + def login(self): if not self.is_on_page(LoginPage): self.home() @@ -132,9 +136,13 @@ class AdopteUnMec(Browser): @pageaccess def get_my_id(self): + if self.my_id: + return self.my_id + if not self.is_on_page(HomePage): self.home() - return self.page.get_my_id() + self.my_id = self.page.get_my_id() + return self.my_id @pageaccess def nb_new_mails(self): diff --git a/weboob/tools/browser.py b/weboob/tools/browser.py index 35678f10..442dd21a 100644 --- a/weboob/tools/browser.py +++ b/weboob/tools/browser.py @@ -219,6 +219,11 @@ class Browser(mechanize.Browser): if self.__cookie: self.__cookie.save() + def str(self, s): + if isinstance(s, unicode): + s = s.encode('iso-8859-15', 'replace') + return s + def set_field(self, args, label, field=None, value=None, is_list=False): try: if not field: @@ -228,15 +233,15 @@ class Browser(mechanize.Browser): if is_list: if isinstance(is_list, (list, tuple)): try: - value = [str(is_list.index(args[label]))] + value = [self.str(is_list.index(args[label]))] except ValueError, e: if args[label]: print '[%s] %s: %s' % (label, args[label], e) return else: - value = [str(args[label])] + value = [self.str(args[label])] else: - value = str(args[label]) + value = self.str(args[label]) self[field] = value except ClientForm.ControlNotFoundError: return