def __init__(self, pod, username='', password='', schema='https'): """ :param pod: The complete url of the diaspora pod to use. :type pod: str :param username: The username used to log in. :type username: str :param password: The password used to log in. :type password: str """ self.pod = pod self._session = requests.Session() self._login_data = {} self._userdata = {} self._token = '' self._diaspora_session = '' try: self._setlogin(username, password) except requests.exceptions.MissingSchema: self.pod = '{0}://{1}'.format(schema, self.pod) warnings.warn('schema was missing') finally: pass try: self._setlogin(username, password) except Exception as e: raise errors.LoginError( 'cannot create login data (caused by: {0})'.format(e))
def __init__(self, pod, username, password, schema='https'): """ :param pod: The complete url of the diaspora pod to use. :type pod: str :param username: The username used to log in. :type username: str :param password: The password used to log in. :type password: str """ self.pod = pod self._session = requests.Session() self._login_data = {'user[remember_me]': 1, 'utf8': '✓'} self._userdata = {} self._token = '' self._diaspora_session = '' self._fetch_token_from = 'stream' try: self._setlogin(username, password) except requests.exceptions.MissingSchema: self.pod = '{0}://{1}'.format(schema, self.pod) warnings.warn('schema was missing') try: self._setlogin(username, password) except Exception as e: raise errors.LoginError( 'cannot create login data (caused by: {0})'.format(e)) self._cookies = self._fetchcookies()
def _login(self): """Handles actual login request. Raises LoginError if login failed. """ request = self.post('users/sign_in', data=self._login_data) if request.status_code not in [200, 201]: raise errors.LoginError('{0}: login failed'.format( request.status_code)) self._diaspora_session = request.cookies['_diaspora_session']
def _login(self): """Handles actual login request. Raises LoginError if login failed. """ request = self.post('users/sign_in', data=self._login_data, allow_redirects=False) if request.status_code != 302: raise errors.LoginError('{0}: login failed'.format(request.status_code))
def login(self, remember_me=1): """This function is used to log in to a pod. Will raise LoginError if password or username was not specified. """ if not self._login_data['user[username]'] or not self._login_data['user[password]']: raise errors.LoginError('username and/or password is not specified') self._login_data['user[remember_me]'] = remember_me status = self._login() self._login_data = {} return self
def login(self, username='', password=''): """This function is used to log in to a pod. Will raise LoginError if password or username was not specified. """ if username and password: self._setlogin(username, password) if not self._login_data['user[username]'] or not self._login_data[ 'user[password]']: raise errors.LoginError( 'username and/or password is not specified') self._login() self._login_data = {}