__author__ = "MetaCarta" __copyright__ = "Copyright (c) 2006-2008 MetaCarta" __license__ = "Clear BSD" __version__ = "$Id$" from FeatureServer.DataSource import DataSource from FeatureServer.Feature import Feature import urllib import simplejson class Twitter (DataSource): """Specialized datasource allowing read-only access to a given username's location via the Twittervision API.""" def __init__(self, name, username, **args): DataSource.__init__(self, name, **args) self.username = username def select (self, action): data = urllib.urlopen("http://api.twittervision.com/user/current_status/%s.json" % self.username).read() user_data = simplejson.loads(data) geom = {'type':'Point', 'coordinates': [[user_data['location']['longitude'], user_data['location']['latitude']]]} f = Feature(int(user_data["id"]), geom) return [f]