"""Object representing connection with the pod.
"""
_token_regex = re.compile(r'content="(.*?)"\s+name="csrf-token')
- _userinfo_regex = re.compile(r'window.current_user_attributes = ({.*})')
- _userinfo_regex_2 = re.compile(r'gon.user=({.*});gon.preloads')
def __init__(self, pod, username, password, schema='https'):
"""
allow_redirects=False)
if request.status_code != 302:
raise errors.LoginError('{0}: login failed'.format(request.status_code))
- return request.status_code
def login(self, remember_me=1):
"""This function is used to log in to a pod.
self._login_data['user[remember_me]'] = remember_me
status = self._login()
self._login_data = {}
- return status
+ return self
def logout(self):
"""Logs out from a pod.
self._setlogin(username, password)
self._login()
- def getUserInfo(self, fetch=False):
- """This function returns the current user's attributes.
-
- :returns: dict -- json formatted user info.
- """
- request = self.get('bookmarklet')
- userdata = self._userinfo_regex.search(request.text)
- if userdata is None: userdata = self._userinfo_regex_2.search(request.text)
- if userdata is None: raise errors.DiaspyError('cannot find user data')
- userdata = userdata.group(1)
- return json.loads(userdata)
-
def _fetchtoken(self):
"""This method tries to get token string needed for authentication on D*.