Refactored streaming API interface maintaining backward compatibility

This commit is contained in:
Telofy 2013-12-12 01:04:52 +01:00
parent 0937fbe929
commit 79871542b3
2 changed files with 9 additions and 6 deletions

View file

@ -148,6 +148,7 @@ class TwythonStreamer(object):
handler = getattr(self, 'on_' + message_type, None) handler = getattr(self, 'on_' + message_type, None)
if handler and callable(handler) and not handler(data.get(message_type)): if handler and callable(handler) and not handler(data.get(message_type)):
break break
yield data
response.close() response.close()
@ -177,7 +178,9 @@ class TwythonStreamer(object):
:param data: Error message sent from stream :param data: Error message sent from stream
:type data: dict :type data: dict
""" """
return # Include the content
raise requests.exceptions.HTTPError(
response.status_code, response.content)
def on_timeout(self): # pragma: no cover def on_timeout(self): # pragma: no cover
""" Called when the request has timed out """ """ Called when the request has timed out """

View file

@ -28,7 +28,7 @@ class TwythonStreamerTypes(object):
""" """
url = 'https://userstream.twitter.com/%s/user.json' \ url = 'https://userstream.twitter.com/%s/user.json' \
% self.streamer.api_version % self.streamer.api_version
self.streamer._request(url, params=params) return self.streamer._request(url, params=params)
def site(self, **params): def site(self, **params):
"""Stream site """Stream site
@ -38,7 +38,7 @@ class TwythonStreamerTypes(object):
""" """
url = 'https://sitestream.twitter.com/%s/site.json' \ url = 'https://sitestream.twitter.com/%s/site.json' \
% self.streamer.api_version % self.streamer.api_version
self.streamer._request(url, params=params) return self.streamer._request(url, params=params)
class TwythonStreamerTypesStatuses(object): class TwythonStreamerTypesStatuses(object):
@ -62,7 +62,7 @@ class TwythonStreamerTypesStatuses(object):
""" """
url = 'https://stream.twitter.com/%s/statuses/filter.json' \ url = 'https://stream.twitter.com/%s/statuses/filter.json' \
% self.streamer.api_version % self.streamer.api_version
self.streamer._request(url, 'POST', params=params) return self.streamer._request(url, 'POST', params=params)
def sample(self, **params): def sample(self, **params):
"""Stream statuses/sample """Stream statuses/sample
@ -74,7 +74,7 @@ class TwythonStreamerTypesStatuses(object):
""" """
url = 'https://stream.twitter.com/%s/statuses/sample.json' \ url = 'https://stream.twitter.com/%s/statuses/sample.json' \
% self.streamer.api_version % self.streamer.api_version
self.streamer._request(url, params=params) return self.streamer._request(url, params=params)
def firehose(self, **params): def firehose(self, **params):
"""Stream statuses/firehose """Stream statuses/firehose
@ -86,4 +86,4 @@ class TwythonStreamerTypesStatuses(object):
""" """
url = 'https://stream.twitter.com/%s/statuses/firehose.json' \ url = 'https://stream.twitter.com/%s/statuses/firehose.json' \
% self.streamer.api_version % self.streamer.api_version
self.streamer._request(url, params=params) return self.streamer._request(url, params=params)