Add support for related_result
authorAaron Swartz <me@aaronsw.com>
Sat, 5 Feb 2011 05:32:25 +0000 (23:32 -0600)
committerJosh Roesslein <jroesslein@gmail.com>
Sat, 5 Feb 2011 05:34:52 +0000 (23:34 -0600)
tweepy/api.py
tweepy/models.py

index b2304b63ec0e94f227e63f8fa2a2c63bdf6559b5..266878702e8e3caa39e5a766922f410342c92434 100644 (file)
@@ -77,6 +77,14 @@ class API(object):
         allowed_param = ['id', 'count', 'page'],
         require_auth = True
     )
+       
+    """/related_results/show/:id.format"""
+    related_results = bind_api(
+        path = '/related_results/show/{id}.json',
+        payload_type = 'relation', payload_list = True,
+        allowed_param = ['id'],
+        require_auth = False
+       )
 
     """/statuses/:id/retweeted_by/ids.format"""
     retweeted_by_ids = bind_api(
index b584fbc4019c9b8bd71e0f6eab3dc4bb944213b9..d4d5c4e2c2a279a9febe4307e0acf5ca34a3fa28 100644 (file)
@@ -276,6 +276,19 @@ class List(Model):
     def is_subscribed(self, id):
         return self._api.is_subscribed_list(self.user.screen_name, self.slug, id)
 
+class Relation(Model):
+    @classmethod
+    def parse(cls, api, json):
+        result = cls(api)
+        for k,v in json.items():
+            if k == 'value' and json['kind'] in ['Tweet', 'LookedupStatus']:
+                setattr(result, k, Status.parse(api, v))
+            elif k == 'results':
+                setattr(result, k, Relation.parse_list(api, v))
+            else:
+                setattr(result, k, v)
+        return result
+
 
 class JSONModel(Model):
 
@@ -308,6 +321,7 @@ class ModelFactory(object):
     saved_search = SavedSearch
     search_result = SearchResult
     list = List
+    relation = Relation
 
     json = JSONModel
     ids = IDModel