4 from resultsparser import EventParser
8 self.api_key = '1928a14bdf51369505530949d8b7e1ee'
9 self.url_base = 'http://ws.audioscrobbler.com/2.0/'
11 self.method = 'geo.getevents'
12 self.parser = EventParser()
14 def get_events(self, lat, long, distance):
15 """ Retrieve xml and parse into events list """
16 xml = self.get_xml(lat, long, distance)
17 events = self.parser.parse_xml(xml,
20 return self.sort_events(events)
22 def sort_events(self, events):
23 """ Sort gig by distance """
25 events.sort(cmp=self.distance_cmp, key=lambda x: x['distance'])
28 def get_json(self, lat='', long='', distance=''):
29 # testing json results
33 params = urllib.urlencode({'method': self.method,
34 'api_key': self.api_key,
38 'format': self.format})
39 url = '%s?%s' % (self.url_base, params)
40 request = urllib2.Request(url, None)
41 response = urllib2.urlopen(request)
44 def get_xml(self, lat, long, distance):
45 """ Return xml from lastfm """
46 params = urllib.urlencode({'method': self.method,
47 'api_key': self.api_key,
51 response = urllib.urlopen(self.url_base, params)
52 return response.read()
54 def distance_cmp(self, x, y):
55 """ Compare distances for list sort """