Implemented json parser.
authorJosh Roesslein <jroesslein@gmail.com>
Sun, 5 Jul 2009 20:12:12 +0000 (15:12 -0500)
committerJosh Roesslein <jroesslein@gmail.com>
Sun, 5 Jul 2009 20:12:12 +0000 (15:12 -0500)
api.py
parsers.py

diff --git a/api.py b/api.py
index 163c7408444fa4280b007ccabbf36bf170d1e4ec..ad25b613591bff0255adf957224bdb42557c98b5 100644 (file)
--- a/api.py
+++ b/api.py
@@ -1,8 +1,8 @@
 import urllib
 import urllib2
 
-from misc import *
-from models import *
+from misc import TweepError, require_auth
+from models import Status, User
 from parsers import *
 
 """
@@ -30,7 +30,7 @@ class API(object):
     self._opener = self._build_opener(username, password)
 
   def public_timeline(self):
-    return self._fetch('statuses/public_timelinee.json') 
+    return parse_list(self._Status, self._fetch('statuses/public_timeline.json'))
 
   @require_auth
   def friends_timeline(self, since_id=None, max_id=None, count=None, page=None):
@@ -61,6 +61,6 @@ class API(object):
 
     # Send request
     try:
-      return self._opener.open(req)
+      return self._opener.open(req).read()
     except urllib2.HTTPError, e:
       raise TweepError(parse_error(e.read()))
index 0d5cad4d9da8ef1c1c2ebc897bd242764426b823..45e45a0f9c437a3f3fd9dc385f039c0a97239b56 100644 (file)
@@ -3,6 +3,23 @@ try:
 except ImportError:
   import simplejson as json
 
-def parse_error(jsondata):
+def parse_error(data):
 
-  return json.loads(jsondata)['error']
+  return json.loads(data)['error']
+
+def parse_item(type, data):
+  t = type()
+  for k,v in json.loads(data).items():
+    setattr(t, k, v)
+  return t
+
+def parse_list(type, data):
+  types = []
+
+  for obj in json.loads(data):
+    t = type()
+    for k,v in obj.items():
+      setattr(t, k, v)
+    types.append(t)
+
+  return types