Skip to content

Instantly share code, notes, and snippets.

@symroe
Created May 16, 2012 22:22
Show Gist options
  • Save symroe/2714490 to your computer and use it in GitHub Desktop.
Save symroe/2714490 to your computer and use it in GitHub Desktop.
Get list member usernames for a given list
import json
import urllib2
import urllib
class ListMemeberParser():
"""
Given a twitter username and list slug, return the members of that list.
"""
def __init__(self, twitter_name, list_slug):
self.twitter_name = twitter_name
self.list_slug = list_slug
self.url_base = """https://api.twitter.com/1/lists/members.json?"""
self.url_query = {
'slug' : list_slug,
'owner_screen_name' : twitter_name,
}
self.cursor = '-1'
self.users = []
def __iter__(self):
return self
def next(self):
if not self.users:
self.parse_page()
if not int(self.cursor):
raise StopIteration
return self.users.pop()['screen_name']
def make_url(self):
self.url_query['cursor'] = self.cursor
return "%s%s" % (self.url_base, urllib.urlencode(self.url_query))
def parse_page(self):
url = self.make_url()
req = urllib2.urlopen(url)
page = json.loads(req.read())
self.cursor = page['next_cursor_str']
self.users = page['users']
for user in ListMemeberParser('tweetminster', 'ukmps'):
print user
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment