From 0e5089c2c0fb1b19b6fff1960ad377f0113fa520 Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Sun, 3 Jul 2011 10:51:34 +0200 Subject: [PATCH] error when password is invalid or when user is banned --- weboob/backends/gazelle/browser.py | 4 ++-- weboob/backends/gazelle/pages/index.py | 12 +++++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/weboob/backends/gazelle/browser.py b/weboob/backends/gazelle/browser.py index 36286a56..ebae10e6 100644 --- a/weboob/backends/gazelle/browser.py +++ b/weboob/backends/gazelle/browser.py @@ -40,7 +40,7 @@ class GazelleBrowser(BaseBrowser): def login(self): if not self.is_on_page(LoginPage): - self.home() + self.location('/login.php', no_login=True) self.page.login(self.username, self.password) def is_logged(self): @@ -51,7 +51,7 @@ class GazelleBrowser(BaseBrowser): return True def home(self): - return self.location('%s://%s/login.php' % (self.PROTOCOL, self.DOMAIN)) + return self.location('%s://%s/' % (self.PROTOCOL, self.DOMAIN)) def iter_torrents(self, pattern): self.location(self.buildurl('/torrents.php', searchstr=pattern.encode('utf-8'))) diff --git a/weboob/backends/gazelle/pages/index.py b/weboob/backends/gazelle/pages/index.py index 334391a9..7eec7063 100644 --- a/weboob/backends/gazelle/pages/index.py +++ b/weboob/backends/gazelle/pages/index.py @@ -18,7 +18,8 @@ # along with weboob. If not, see . -from weboob.tools.browser import BasePage +from weboob.tools.browser import BasePage, BrowserIncorrectPassword, BrowserBanned +from weboob.tools.misc import remove_html_tags __all__ = ['IndexPage', 'LoginPage'] @@ -30,6 +31,15 @@ class IndexPage(BasePage): class LoginPage(BasePage): + def on_loaded(self): + warns = self.parser.select(self.document.getroot(), 'span.warning') + for warn in warns: + text = remove_html_tags(self.parser.tostring(warn)).strip() + if text.startswith('Your username'): + raise BrowserIncorrectPassword(text) + if text.startswith('You are banned'): + raise BrowserBanned(text) + def login(self, login, password): self.browser.select_form(nr=0) self.browser['username'] = login