Added status parsing into streaming api.
authorJosh Roesslein <jroesslein@gmail.com>
Sat, 8 Aug 2009 04:42:30 +0000 (23:42 -0500)
committerJosh Roesslein <jroesslein@gmail.com>
Sat, 8 Aug 2009 04:42:30 +0000 (23:42 -0500)
stream_watcher.py
tweepy/streaming.py

index 949c90af8901153fa1152f6d36fdd90abeb446e4..b6bce341b97d52e17016a688d1250a30d9b810b6 100644 (file)
@@ -1,14 +1,15 @@
 import time
+from getpass import getpass
 
 import tweepy
 
-def callback(stream_object):
+def callback(status):
 
-  if 'text' in stream_object:
-    print stream_object['text']
-    
+  print status.text   
 
-stream = tweepy.Stream('spritzer', 'tweebly', 'omega1987twitter')
+username = raw_input('Twitter username: ')
+password = getpass('Twitter password: ')
+stream = tweepy.Stream('spritzer', username, password)
 stream.connect(callback)
 
 while True:
index afa8cab8a67c340fbc87e50c63d514658c5a13f2..0cd035dbb540144b9549fe6563a87ed3e8397fd4 100644 (file)
@@ -6,6 +6,8 @@ import httplib
 from threading import Thread
 
 from . auth import BasicAuthHandler
+from . parsers import parse_status
+from . api import API
 
 try:
   import json
@@ -22,6 +24,7 @@ class Stream(object):
     self.buffer_size = buffer_size
 
   def _run(self):
+    api = API()
     conn = httplib.HTTPConnection(self.host)
     headers = {}
     self.auth.apply_auth(None, None, headers, None)
@@ -47,8 +50,14 @@ class Stream(object):
 
       # read data
       data = resp.read(length)
-      jobject = json.loads(data)
-      self.callback(jobject)
+
+      # turn json data into status object
+      if 'in_reply_to_status_id' in data:
+        status = parse_status(data, api)
+        self.callback(status)
+
+      # TODO: we should probably also parse delete/track messages
+      # and pass to a callback
 
     conn.close()
     self.running = False