Added some api endpoints to user model.
authorJosh Roesslein <jroesslein@gmail.com>
Mon, 6 Jul 2009 02:08:58 +0000 (21:08 -0500)
committerJosh Roesslein <jroesslein@gmail.com>
Mon, 6 Jul 2009 02:08:58 +0000 (21:08 -0500)
api.py
binder.py
models.py
parsers.py

diff --git a/api.py b/api.py
index 369db0ab9280f2e9307ccaa33396a578646e6413..2e9068b0956f5583b8f84a859eb144e395caf31a 100644 (file)
--- a/api.py
+++ b/api.py
@@ -17,6 +17,9 @@ class API(object):
     self.secure = secure
     self.classes = classes
 
+    if username:
+      self.me = self.get_user(screen_name=username)
+
   """Get public timeline"""
   public_timeline = bind_api(
       path = '/statuses/public_timeline.json',
index 143a13e98c9e926adeb620738b1b777fbf1572a2..8e3caeb2ca7b5f44396541058a0a3fc59c911be2 100644 (file)
--- a/binder.py
+++ b/binder.py
@@ -45,7 +45,7 @@ def bind_api(path, parser, allowed_param=None, method='GET', require_auth=False)
       raise TweepError(parse_error(resp.read()))
 
     # Pass returned body into parser and return parser output
-    out =  parser(resp.read(), api.classes)
+    out =  parser(resp.read(), api)
 
     # close connection and return data
     conn.close()
index fd765f1a49aa394d16a55997e19bd34f85ab1863..b99af3cfe7e2a3628f9c108d80222f60d806ca41 100644 (file)
--- a/models.py
+++ b/models.py
@@ -4,4 +4,11 @@ class Status(object):
 
 class User(object):
 
-  pass
+  def timeline(self, **kargs):
+    return self._api.user_timeline(**kargs)
+  def mentions(self, **kargs):
+    return self._api.mentions(**kargs)
+  def friends(self, **kargs):
+    return self._api.friends(id=self.id, **kargs)
+  def followers(self, **kargs):
+    return self._api.followers(id=self.id, **kargs)
index 7b7782c84d1c3a537e2081d528b1adb2862768f6..f6037cb0cc49064055ae273a23cacbbef649d62e 100644 (file)
@@ -13,48 +13,50 @@ def _parse_datetime(str):
 
   return datetime.strptime(str, '%a %b %d %H:%M:%S +0000 %Y')
 
-def _parse_user(obj, classes):
+def _parse_user(obj, api):
 
-  user = classes['user']()
+  user = api.classes['user']()
+  user._api = api
   for k,v in obj.items():
     if k == 'created_at':
       setattr(user, k, _parse_datetime(v))
     elif k == 'status':
-      setattr(user, k, _parse_status(v, classes))
+      setattr(user, k, _parse_status(v, api))
     else:
       setattr(user, k, v)
   return user
 
-def parse_user(data, classes):
+def parse_user(data, api):
 
-  return _parse_user(json.loads(data), classes)
+  return _parse_user(json.loads(data), api)
 
-def parse_users(data, classes):
+def parse_users(data, api):
 
   users = []
   for obj in json.loads(data):
-    users.append(_parse_user(obj, classes))
+    users.append(_parse_user(obj, api))
   return users
 
-def _parse_status(obj, classes):
+def _parse_status(obj, api):
 
-  status = classes['status']()
+  status = api.classes['status']()
+  status._api = api
   for k,v in obj.items():
     if k == 'user':
-      setattr(status, k, _parse_user(v, classes))
+      setattr(status, k, _parse_user(v, api))
     elif k == 'created_at':
       setattr(status, k, _parse_datetime(v))
     else:
       setattr(status, k, v)
   return status
 
-def parse_status(data, classes):
+def parse_status(data, api):
 
-  return _parse_status(json.loads(data), classes)
+  return _parse_status(json.loads(data), api)
 
-def parse_statuses(data, classes):
+def parse_statuses(data, api):
 
   statuses = []
   for obj in json.loads(data):
-    statuses.append(_parse_status(obj, classes))
+    statuses.append(_parse_status(obj, api))
   return statuses