Example #1
0
    def handle(self, *args, **options):

        start_date = datetime.date(year=2013,month=4,day=1)
        end_date = datetime.date(year=2013,month=8,day=26)
        date_diff = datetime.timedelta(days=7)

        cur_date = start_date
        
        known_tracks_map = dict([(track.mediaid,track) for track in HypemTrack.objects.all()])

        while cur_date < end_date:
            snapshot = HypemPopularSnapshot(date=cur_date)
            snapshot.save()
            
            popular_tracks_data = hypem_manager.get_timemachine(date=cur_date)['tracks']
            for track_data in popular_tracks_data:
                rank = popular_tracks_data.index(track_data)+1
                if known_tracks_map.has_key(track_data['id']):
                    track = known_tracks_map[track_data['id']]
                else:
                    track = HypemTrack(
                        mediaid=track_data['id'],
                        artist=track_data['artist'],
                        title=track_data['song'],
                    )
                    track.save()
                    known_tracks_map[track.mediaid] = track
                        
                rank_listing = HypemRankListing(hypemtrack=track,
                                                hypempopularsnapshot=snapshot,
                                                rank=rank)
                rank_listing.save()

            cur_date+=date_diff
Example #2
0
    def _parse_track_data(self, raw_track_data):
        #hack to get rid of version stuff
        del raw_track_data['version']

        media_ids = [track['mediaid'] for track in raw_track_data.values()]
        known_tracks_map = dict([
            (track.mediaid, track)
            for track in HypemTrack.objects.filter(mediaid__in=media_ids)
        ])

        tracks_result = []
        #Get Models Associated with Raw Data
        for playlist_num, track_data in raw_track_data.items():
            if track_data['mediaid'] in known_tracks_map:
                track = known_tracks_map[track_data['mediaid']]
            else:
                track = HypemTrack(mediaid=track_data['mediaid'],
                                   artist=track_data['artist'],
                                   title=track_data['title'],
                                   dateposted=datetime.datetime.fromtimestamp(
                                       track_data['dateposted']),
                                   description=track_data['description'],
                                   thumb_url=track_data['thumb_url'])
                track.save()
                known_tracks_map[track.mediaid] = track

            tracks_result.append(track)

        return tracks_result
Example #3
0
    def handle(self, *args, **options):

        start_date = datetime.date(year=2013, month=4, day=1)
        end_date = datetime.date(year=2013, month=8, day=26)
        date_diff = datetime.timedelta(days=7)

        cur_date = start_date

        known_tracks_map = dict([(track.mediaid, track)
                                 for track in HypemTrack.objects.all()])

        while cur_date < end_date:
            snapshot = HypemPopularSnapshot(date=cur_date)
            snapshot.save()

            popular_tracks_data = hypem_manager.get_timemachine(
                date=cur_date)['tracks']
            for track_data in popular_tracks_data:
                rank = popular_tracks_data.index(track_data) + 1
                if known_tracks_map.has_key(track_data['id']):
                    track = known_tracks_map[track_data['id']]
                else:
                    track = HypemTrack(
                        mediaid=track_data['id'],
                        artist=track_data['artist'],
                        title=track_data['song'],
                    )
                    track.save()
                    known_tracks_map[track.mediaid] = track

                rank_listing = HypemRankListing(hypemtrack=track,
                                                hypempopularsnapshot=snapshot,
                                                rank=rank)
                rank_listing.save()

            cur_date += date_diff