diff --git a/weboob/backends/aum/browser.py b/weboob/backends/aum/browser.py index d222b9f1..da23e3b5 100644 --- a/weboob/backends/aum/browser.py +++ b/weboob/backends/aum/browser.py @@ -34,8 +34,10 @@ from weboob.backends.aum.pages.contact_thread import ContactThreadPage from weboob.backends.aum.pages.baskets import BasketsPage from weboob.backends.aum.pages.profile import ProfilePage from weboob.backends.aum.pages.search import SearchPage -from weboob.backends.aum.pages.login import LoginPage, RedirectPage, BanPage, ErrPage, RegisterPage, RegisterWaitPage, RegisterConfirmPage, ShopPage -from weboob.backends.aum.pages.edit import EditPhotoPage, EditPhotoCbPage, EditAnnouncePage, EditDescriptionPage, EditSexPage, EditPersonalityPage +from weboob.backends.aum.pages.login import LoginPage, RedirectPage, BanPage, ErrPage, RegisterPage, \ + RegisterWaitPage, RegisterConfirmPage, ShopPage, InvitePage +from weboob.backends.aum.pages.edit import EditPhotoPage, EditPhotoCbPage, EditAnnouncePage, \ + EditDescriptionPage, EditSexPage, EditPersonalityPage from weboob.backends.aum.pages.wait import WaitPage from weboob.capabilities.chat import ChatException, ChatMessage @@ -54,6 +56,7 @@ class AuMBrowser(BaseBrowser): 'http://www.adopteunmec.com/bans.php.*': BanPage, 'http://www.adopteunmec.com/redirect.php\?action=login': RedirectPage, 'http://www.adopteunmec.com/wait.php': WaitPage, + 'http://www.adopteunmec.com/invits.php': InvitePage, 'http://www.adopteunmec.com/register2.php': RegisterPage, 'http://www.adopteunmec.com/register3.php.*': RegisterWaitPage, 'http://www.adopteunmec.com/register4.php.*': RegisterConfirmPage, @@ -155,8 +158,12 @@ class AuMBrowser(BaseBrowser): if self.my_id: return self.my_id - if not self.is_on_page(HomePage): - self.home() + try: + if not self.is_on_page(HomePage): + self.home() + except AdopteWait: + self.location('/invits.php') + self.my_id = self.page.get_my_id() return self.my_id diff --git a/weboob/backends/aum/optim/priority_connection.py b/weboob/backends/aum/optim/priority_connection.py index 703aeeac..68a90c42 100644 --- a/weboob/backends/aum/optim/priority_connection.py +++ b/weboob/backends/aum/optim/priority_connection.py @@ -101,8 +101,8 @@ class PriorityConnection(Optimization): def check_godchilds(self): with self.browser: - my_id = self.browser.get_my_id() try: + my_id = self.browser.get_my_id() nb_godchilds = self.browser.nb_godchilds() except AdopteWait: nb_godchilds = 0 diff --git a/weboob/backends/aum/pages/home.py b/weboob/backends/aum/pages/home.py index 1037c607..913e8608 100644 --- a/weboob/backends/aum/pages/home.py +++ b/weboob/backends/aum/pages/home.py @@ -19,10 +19,8 @@ import re from weboob.backends.aum.pages.base import PageBase -from logging import error, warning class HomePage(PageBase): - MYID_REGEXP = re.compile("http://www.adopteunmec.com/\?mid=(\d+)") def get_my_id(self): @@ -32,11 +30,10 @@ class HomePage(PageBase): if m: return m.group(1) - error("Error: Unable to find my ID") + self.browser.logger.error("Error: Unable to find my ID") return 0 def __get_home_indicator(self, pos, what): - tables = self.document.getElementsByTagName('table') for table in tables: if table.hasAttribute('style') and table.getAttribute('style') == 'background-color:black;background-image:url(http://s.adopteunmec.com/img/barmec.gif);background-repeat:no-repeat': @@ -47,7 +44,7 @@ class HomePage(PageBase): i += 1 if i == pos: return int(font.firstChild.data) - warning(u'Could not parse number of %s' % what) + self.browser.logger.error(u'Could not parse number of %s' % what) return 0 def nb_available_charms(self): diff --git a/weboob/backends/aum/pages/login.py b/weboob/backends/aum/pages/login.py index a68eeee2..6fd55005 100644 --- a/weboob/backends/aum/pages/login.py +++ b/weboob/backends/aum/pages/login.py @@ -123,3 +123,16 @@ class ShopPage(PageBase): class ErrPage(PageBase): def on_loaded(self): raise BrowserIncorrectPassword('Incorrect login/password') + +class InvitePage(PageBase): + MYID_REGEXP = re.compile("http://www.adopteunmec.com/\?mid=(\d+)") + + def get_my_id(self): + fonts = self.document.getElementsByTagName('font') + for font in fonts: + m = self.MYID_REGEXP.match(font.firstChild.data) + if m: + return m.group(1) + + self.browser.logger.error("Error: Unable to find my ID") + return 0