twython/tango.py

56 lines
2.3 KiB
Python

#!/usr/bin/python
"""
Django-Twitter (Tango) utility functions. Huzzah.
"""
import simplejson, urllib, urllib2, base64
# Need to support URL shortening
class tango:
def __init__(self, authtype = None, username = None, password = None):
self.authtype = authtype
self.username = username
self.password = password
# Forthcoming auth work below, now requires base64 shiz
if self.authtype == "OAuth":
pass
elif self.authtype == "Basic":
print "Basic Auth"
else:
pass
def getUserTimeline(self, count = None, since_id = None, max_id = None, page = None):
# Fairly close to full API support, need a few other methods.
userTimelineURL = "http://twitter.com/statuses/user_timeline/" + self.username + ".json"
if count is not None:
userTimelineURL += "?count=" + count
if since_id is not None:
userTimelineURL += "?since_id=" + since_id
if max_id is not None:
userTimelineURL += "?max_id=" + max_id
if page is not None:
userTimelineURL += "?page=" + page
userTimeline = simplejson.load(urllib2.urlopen(userTimelineURL))
formattedTimeline = []
for tweet in userTimeline:
formattedTimeline.append(tweet['text'])
return formattedTimeline
def getSearchTimeline(self, search_query, optional_page):
params = urllib.urlencode({'q': search_query, 'rpp': optional_page}) # Doesn't hurt to do pages this way. *shrug*
searchTimeline = simplejson.load(urllib2.urlopen("http://search.twitter.com/search.json", params))
formattedTimeline = []
for tweet in searchTimeline['results']:
formattedTimeline.append(tweet['text'])
return formattedTimeline
def getCurrentTrends(self):
# Returns an array of dictionary items containing the current trends
trendingTopicsURL = "http://search.twitter.com/trends.json"
trendingTopics = simplejson.load(urllib.urlopen(trendingTopicsURL))
trendingTopicsArray = []
for topic in trendingTopics['trends']:
trendingTopicsArray.append({"name" : topic['name'], "url" : topic['url']})
return trendingTopicsArray