Exemple #1
0
def update_events(venue_ids):

    for identifier in venue_ids:
    	payload = {'apikey': SONGKICK, 'per_page': 50, 'page': 1}
    	url = 'http://api.songkick.com/api/3.0/venues/'+str(identifier)+'/calendar.json?'

    	r = requests.get(url, params=payload)
    	r.raise_for_status()
    	data = r.json()

    	venue = Venue.get(venue_id=identifier)
    	#venue.save()

    	try:
    		results = data['resultsPage']['results']['event']
    	except KeyError, error:
    		print 'An error occured: %s: There are no upcoming events for this venue: %s' % (error, venue.name)
    		continue

    	for item in results:
            try:
                event_id = item['id']
                name = item['displayName']
                type = item['type']
                status = item['status']
                datetime = item['start']['datetime']
                url = item['uri']
                popularity = item['popularity']
            except KeyError, error:
                print 'An error occured: %s: There is limited data for event: %s' % (error, event_id)
                pass

            event, _created = Event.get_or_create(event_id=event_id, venue=venue)
            event.name = name
            event.type = type
            event.status = status
            event.datetime = datetime
            event.url = url
            event.popularity = popularity
            print event.name
            event.save()

            for artist in item['performance']:
                try:
                    artist_id = artist['artist']['id']
                    name = artist['artist']['displayName']
                    performer, _created = Artist.get_or_create(artist_id=artist_id, name=name)
                    billing = artist['billing']
                    billing_index = artist['billingIndex']
                    p, _created = Performance.get_or_create(artist=performer, event=event)
                    p.billing = billing
                    p.billing_index = billing_index
                    p.save()

                except KeyError, error:
                    print 'An error occured %s' % error
                    pass
Exemple #2
0
 def save_to_db(self):
     for track_info in self.tracks_info:
         artist, created = Artist.get_or_create(name=track_info['artist'])
         if "label" in track_info:
             label, created = Label.get_or_create(name=track_info['label'])
             track, created = Track.create_or_get(artist=artist.id,
                                                  title=track_info['title'])
             track.label = label.id
             track.save()
         else:
             track, created = Track.create_or_get(artist=artist.id,
                                                  title=track_info['title'])
         self.setlist_trackids.append(track.id)
     return