4 from resultsparser import parse_xml
16 self.venue_name = venue_name
17 self.address = address
20 self.artists = artists
21 self.start_date = start_date
23 def get_distance_from(self, lng, lat):
24 return location.distance_between(float(lat),
31 self.api_key = '1928a14bdf51369505530949d8b7e1ee'
32 self.url_base = 'http://ws.audioscrobbler.com/2.0/'
34 self.method = 'geo.getevents'
36 def get_events(self, lat, lng, distance):
37 """ Retrieve xml and parse into events list """
39 xml = self.get_xml(lat, lng, distance)
40 events.extend(parse_xml(xml,
43 return self.sort_events(events)
45 def sort_events(self, events):
46 """ Sort gig by distance """
48 events.sort(cmp=self.distance_cmp, key=lambda x: x['distance'])
51 def get_json(self, lat='', lng='', distance=''):
52 # testing json results
56 params = urllib.urlencode({'method': self.method,
57 'api_key': self.api_key,
61 'format': self.format})
62 url = '%s?%s' % (self.url_base, params)
63 request = urllib2.Request(url, None)
64 response = urllib2.urlopen(request)
67 def get_xml(self, lat, lng, distance, page='1'):
68 """ Return xml from lastfm """
69 params = urllib.urlencode({'method': self.method,
70 'api_key': self.api_key,
75 response = urllib.urlopen(self.url_base, params)
76 return response.read()
78 def distance_cmp(self, x, y):
79 """ Compare distances for list sort """