6 from resultsparser import parse_json
18 self.venue_name = venue_name
19 self.address = address
22 self.artists = artists
23 self.start_date = start_date
25 def get_distance_from(self, lng, lat):
26 return location.distance_between(float(lat),
33 self.api_key = '1928a14bdf51369505530949d8b7e1ee'
34 self.url_base = 'http://ws.audioscrobbler.com/2.0/'
36 self.method = 'geo.getevents'
38 def get_events(self, lat, lng, distance):
39 """ Retrieve json and parse into events list """
41 result = self.get_json(lat, lng, distance)
42 for event in parse_json(result):
43 events.append(Event(event[0],
50 return self.sort_events(events, lat, lng)
52 def sort_events(self, events, lat, lng):
53 """ Sort gig by distance """
55 events.sort(cmp=self.distance_cmp, key=lambda x: x.get_distance_from(lng, lat))
58 def get_json(self, lat='', lng='', distance=''):
59 params = urllib.urlencode({'method': self.method,
60 'api_key': self.api_key,
64 'format': self.format})
65 url = '%s?%s' % (self.url_base, params)
66 request = urllib2.Request(url, None)
67 response = urllib2.urlopen(request)
68 return response.read()
70 def distance_cmp(self, x, y):
71 """ Compare distances for list sort """