Moved getUserInfo() to diaspy.people.Me.getInfo(), regexps for
authorMarek Marecki <marekjm@taistelu.com>
Sun, 15 Sep 2013 13:47:03 +0000 (15:47 +0200)
committerMarek Marecki <marekjm@taistelu.com>
Sun, 15 Sep 2013 13:47:03 +0000 (15:47 +0200)
extracting it were also moved

Changelog.markdown
diaspy/connection.py
diaspy/people.py

index 56322f0467dcb6a99867f823334875854286b23e..909bf79c0b6f64f5d5c5bad01cdc310798ec8bbc 100644 (file)
@@ -27,15 +27,23 @@ up-to-date than manual and if conflicts appear they should follow the order:
 
 ----
 
-#### Version `0.4.1` (2013-09-):
+#### Version `0.4.2` (2013-09-):
+
+This version has some small incompatibilities with `0.4.1` so read Changelog carefully.
 
 * __new__:  `diaspy.people.User._fetchstream()` method,
+* __new__:  `diaspy.people.Me()` object representing current user,
+* __rem__:  `diaspy.people.Me.getInfo()` (moved from `diaspy.connection.Connection.getUserInfo()`),
+
 
 * __upd__:  `diaspy.connection.Connection.login()` modifies connection object in-place **and** returns it (this allows more fluent API),
 * __upd__:  `diaspy.connection.Connection.login()` no longer returns status code (if login was unsuccessful it'll raise an exception),
 * __upd__:  `diaspy.connection.Connection._login()` no longer returns status code (if login was unsuccessful it'll raise an exception),
 
 
+* __rem__:  `diaspy.connection.Connection.getUserInfo()` moved to `diaspy.people.Me.getInfo()`,
+
+
 ----
 
 #### Version `0.4.1` (2013-09-12):
index 50b1d44cf0577f2c05edbbba93904c315c0d1a76..12c035a4679553d8840943bce3f1dff5eb43ad7a 100644 (file)
@@ -20,8 +20,6 @@ class Connection():
     """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'):
         """
@@ -173,18 +171,6 @@ class Connection():
         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*.
 
index 67404efdcfd4da25bd1ee26ae88d5c9388f0ea2c..76a1913bcdeeba09aa4e7b3313c139267af12746 100644 (file)
@@ -120,6 +120,29 @@ class User():
         self.data = data
 
 
+class Me():
+    """Object represetnting current user.
+    """
+    _userinfo_regex = re.compile(r'window.current_user_attributes = ({.*})')
+    _userinfo_regex_2 = re.compile(r'gon.user=({.*});gon.preloads')
+
+    def __init__(self, connection):
+        self._connection = connection
+
+    def getInfo(self, fetch=False):
+        """This function returns the current user's attributes.
+
+        :returns: dict -- json formatted user info.
+        """
+        request = self._connection.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)
+
+
+
 class Contacts():
     """This class represents user's list of contacts.
     """