Added support for /friendships/lookup api call
authorJohn Gunnarsson <john@Fjuk.local>
Mon, 19 Mar 2012 00:35:16 +0000 (01:35 +0100)
committerJohn Gunnarsson <john@Fjuk.local>
Mon, 19 Mar 2012 00:35:16 +0000 (01:35 +0100)
tweepy/api.py
tweepy/models.py

index 7692ce4a6409319dc43f0f0cab2c8ca151261a9e..67502293a566c43daeaaa614f8ed4acb4cf0d7e4 100644 (file)
@@ -278,6 +278,19 @@ class API(object):
                           'target_id', 'target_screen_name']
     )
 
+
+    """ Perform bulk look up of friendships from user ID or screenname """
+    def lookup_friendships(self, user_ids=None, screen_names=None):
+           return self._lookup_friendships(list_to_csv(user_ids), list_to_csv(screen_names))
+
+    _lookup_friendships = bind_api(
+        path = '/friendships/lookup.json',
+        payload_type = 'relationship', payload_list = True,
+        allowed_param = ['user_id', 'screen_name'],
+        require_auth = True
+    )
+
+
     """ friends/ids """
     friends_ids = bind_api(
         path = '/friends/ids.json',
index d640b9cd593dfd080f8aa16d45872a6f95f1c83c..0235cc1d49466bc59e2599b874dd16147cc83f3c 100644 (file)
@@ -290,6 +290,17 @@ class Relation(Model):
                 setattr(result, k, v)
         return result
 
+class Relationship(Model):
+    @classmethod
+    def parse(cls, api, json):
+        result = cls(api)
+        for k,v in json.items():
+            if k == 'connections':
+               setattr(result, 'is_following', 'following' in v)
+                setattr(result, 'is_followed_by', 'followed_by' in v)
+            else:
+                setattr(result, k, v)
+        return result
 
 class JSONModel(Model):
 
@@ -323,6 +334,7 @@ class ModelFactory(object):
     search_result = SearchResult
     list = List
     relation = Relation
+    relationship = Relationship
 
     json = JSONModel
     ids = IDModel