4 from resultsparser import parse_xml
8 self.api_key = '1928a14bdf51369505530949d8b7e1ee'
9 self.url_base = 'http://ws.audioscrobbler.com/2.0/'
11 self.method = 'geo.getevents'
13 def get_events(self, lat, lng, distance):
14 """ Retrieve xml and parse into events list """
16 for page in ['1', '2', '3']:
17 xml = self.get_xml(lat, lng, distance, page=page)
18 events.extend(parse_xml(xml,
21 return self.sort_events(events)
23 def sort_events(self, events):
24 """ Sort gig by distance """
26 events.sort(cmp=self.distance_cmp, key=lambda x: x['distance'])
29 def get_json(self, lat='', lng='', distance=''):
30 # testing json results
34 params = urllib.urlencode({'method': self.method,
35 'api_key': self.api_key,
39 'format': self.format})
40 url = '%s?%s' % (self.url_base, params)
41 request = urllib2.Request(url, None)
42 response = urllib2.urlopen(request)
45 def get_xml(self, lat, lng, distance, page='1'):
46 """ Return xml from lastfm """
47 params = urllib.urlencode({'method': self.method,
48 'api_key': self.api_key,
53 response = urllib.urlopen(self.url_base, params)
54 return response.read()
56 def distance_cmp(self, x, y):
57 """ Compare distances for list sort """