def login(self): if not self.is_on_page(LoginPage): self.location(self.login_url, no_login=True) self.page.login(self.username, self.password) if self.is_on_page(BadLoginPage): raise BrowserIncorrectPassword() if self.is_on_page(AccountDesactivate): raise BrowserBanned()
def on_loaded(self): BasePage.on_loaded(self) warns = self.parser.select(self.document.getroot(), '.warning') for warn in warns: text = self.parser.tocleanstring(warn) if text.startswith('Your '): raise BrowserIncorrectPassword(text) if text.startswith('You are banned'): raise BrowserBanned(text)
def login(self): if self.password is None: return params = {'remember_me': 0, 'email': self.username, 'password': self.password, } data = self.readurl('http://gdcvault.com/api/login.php', urlencode(params)) # some data returned as JSON, not sure yet if it's useful if data is None: self.openurl('/logout', '') raise BrowserBanned('Too many open sessions?') self.location('/', no_login=True) if not self.is_logged(): raise BrowserIncorrectPassword()
def _get_json(self, url): j = json.loads(self._get_unicode(url)) if 'rate' in j: # shit, we've been banned... raise BrowserBanned('Flood - Banned for today') return j
def on_loaded(self): raise BrowserBanned()