コード例 #1
0
ファイル: views.py プロジェクト: kumar303/chirpradio
def bootstrap(request):
    # Don't create dummy playlist tracks if playlist tracks already exist!
    pl_tracks = PlaylistTrack.all().fetch(1)
    if len(pl_tracks) > 0:
        return HttpResponse(status=404)

    playlist = ChirpBroadcast()

    minutes = 0
    tracks = Track.all().fetch(100)
    for track in tracks:
        pl_track = PlaylistTrack(
            playlist=playlist,
            selector=request.user,
            established=datetime.now() - timedelta(minutes=minutes),
            artist=track.album.album_artist,
            album=track.album,
            track=track,
        )
        pl_track.put()
        if minutes > 0 and minutes % 25 == 0:
            pl_break = PlaylistBreak(playlist=playlist, established=datetime.now() - timedelta(minutes=minutes - 1))
            pl_break.put()
        minutes += 5

    return HttpResponseRedirect("/playlists/")
コード例 #2
0
def clear_data():
    for pl in Playlist.all():
        for track in PlaylistTrack.all().filter('playlist =', pl):
            track.delete()
        pl.delete()
    for ob in PlayCount.all():
        ob.delete()
コード例 #3
0
ファイル: views.py プロジェクト: kumar303/chirpradio
def bootstrap(request):
    # Don't create dummy playlist tracks if playlist tracks already exist!
    pl_tracks = PlaylistTrack.all().fetch(1)
    if len(pl_tracks) > 0:
        return HttpResponse(status=404)

    playlist = ChirpBroadcast()

    minutes = 0
    tracks = Track.all().fetch(100)
    for track in tracks:
        pl_track = PlaylistTrack(playlist=playlist,
                                 selector=request.user,
                                 established=datetime.now() -
                                 timedelta(minutes=minutes),
                                 artist=track.album.album_artist,
                                 album=track.album,
                                 track=track)
        pl_track.put()
        if minutes > 0 and minutes % 25 == 0:
            pl_break = PlaylistBreak(playlist=playlist,
                                     established=datetime.now() -
                                     timedelta(minutes=minutes - 1))
            pl_break.put()
        minutes += 5

    return HttpResponseRedirect("/playlists/")
コード例 #4
0
ファイル: test_views.py プロジェクト: CDMirel/chirpradio
def clear_data():
    for pl in Playlist.all():
        for track in PlaylistTrack.all().filter('playlist =', pl):
            track.delete()
        pl.delete()
    for ob in PlayCount.all():
        ob.delete()
コード例 #5
0
ファイル: tests.py プロジェクト: kumar303/chirpradio
def clear_data():
    for pl in Playlist.all():
        for track in PlaylistTrack.all().filter('playlist =', pl):
            track.delete()
        pl.delete()
    for u in User.all():
        u.delete()
コード例 #6
0
ファイル: handler.py プロジェクト: chirpradio/chirpradio
 def get_json(self):
     playlist_key = chirp_playlist_key()
     recent_tracks = list(PlaylistTrack.all().filter("playlist =", playlist_key).order("-established").fetch(6))
     return {
         "now_playing": self.track_as_data(recent_tracks.pop(0)),
         # Last 5 played tracks:
         "recently_played": [self.track_as_data(t) for t in recent_tracks],
     }
コード例 #7
0
ファイル: views.py プロジェクト: kumar303/chirpradio
def filter_tracks_by_date_range(from_date, to_date):
    fd = datetime(from_date.year, from_date.month, from_date.day, 0, 0, 0)
    td = datetime(to_date.year, to_date.month, to_date.day, 23, 59, 59)
    playlist = chirp_playlist_key()
    pl = PlaylistTrack.all().filter("playlist =", playlist)
    pl = pl.filter("established >=", fd)
    pl = pl.filter("established <=", td)
    pl = pl.order("-established")
    return pl
コード例 #8
0
    def test_chirp_playlist_key(self):
        playlist_key = chirp_playlist_key()

        track = PlaylistTrack(
            selector=create_dj(),
            playlist=playlist_key,
            freeform_artist_name="Stevie Wonder",
            freeform_album_title="Talking Book",
            freeform_track_title='You Are The Sunshine Of My Life',
            freeform_label='Warner Bros.',
        )
        track.put()

        trk = PlaylistTrack.all().filter('playlist =', playlist_key)
        self.assertEqual(trk[0].artist_name, 'Stevie Wonder')
        playlist_key = chirp_playlist_key()  # from cache
        trk = PlaylistTrack.all().filter('playlist =', playlist_key)
        self.assertEqual(trk[0].artist_name, 'Stevie Wonder')
コード例 #9
0
ファイル: views.py プロジェクト: kumar303/chirpradio
def filter_tracks_by_date_range(from_date, to_date):
    fd = datetime(from_date.year, from_date.month, from_date.day, 0, 0, 0)
    td = datetime(to_date.year, to_date.month, to_date.day, 23, 59, 59)
    playlist = chirp_playlist_key()
    pl = PlaylistTrack.all().filter('playlist =', playlist)
    pl = pl.filter('established >=', fd)
    pl = pl.filter('established <=', td)
    pl = pl.order('-established')
    return pl
コード例 #10
0
    def test_chirp_playlist_key(self):
        playlist_key = chirp_playlist_key()

        track = PlaylistTrack(
            selector=create_dj(),
            playlist=playlist_key,
            freeform_artist_name="Stevie Wonder",
            freeform_album_title="Talking Book",
            freeform_track_title='You Are The Sunshine Of My Life',
            freeform_label='Warner Bros.',
        )
        track.put()

        trk = PlaylistTrack.all().filter('playlist =', playlist_key)
        self.assertEqual(trk[0].artist_name, 'Stevie Wonder')
        playlist_key = chirp_playlist_key()  # from cache
        trk = PlaylistTrack.all().filter('playlist =', playlist_key)
        self.assertEqual(trk[0].artist_name, 'Stevie Wonder')
コード例 #11
0
ファイル: handler.py プロジェクト: yogee007/chirpradio
 def get_json(self):
     playlist_key = chirp_playlist_key()
     recent_tracks = list(PlaylistTrack.all().filter(
         'playlist =', playlist_key).order('-established').fetch(6))
     return {
         'now_playing': self.track_as_data(recent_tracks.pop(0)),
         # Last 5 played tracks:
         'recently_played': [self.track_as_data(t) for t in recent_tracks]
     }
コード例 #12
0
ファイル: handler.py プロジェクト: kumar303/chirpradio
 def get_json(self):
     playlist_key = chirp_playlist_key()
     recent_tracks = list(PlaylistTrack.all()
                             .filter('playlist =', playlist_key)
                             .order('-established')
                             .fetch(6))
     return {
         'now_playing': self.track_as_data(recent_tracks.pop(0)),
         # Last 5 played tracks:
         'recently_played': [self.track_as_data(t) for t in recent_tracks]
     }
コード例 #13
0
ファイル: test_views.py プロジェクト: kumar303/chirpradio
    def test_delete_link_appears_for_current_user(self):
        resp = self.client.get(reverse('playlists_landing_page'))
        assert '[delete]' in resp.content

        for track in PlaylistTrack.all():
            track.delete()

        other_user = User(email="*****@*****.**")
        other_user.roles.append(auth.roles.DJ)
        other_user.put()
        other_track = PlaylistTrack(playlist=self.playlist,
                                    selector=other_user,
                                    freeform_artist_name="Peaches",
                                    freeform_track_title="Rock Show")
        other_track.put()

        resp = self.client.get(reverse('playlists_landing_page'))
        assert '[delete]' not in resp.content
コード例 #14
0
ファイル: test_views.py プロジェクト: CDMirel/chirpradio
    def test_delete_link_appears_for_current_user(self):
        resp = self.client.get(reverse('playlists_landing_page'))
        assert '[delete]' in resp.content

        for track in PlaylistTrack.all():
            track.delete()

        other_user = User(email="*****@*****.**")
        other_user.roles.append(auth.roles.DJ)
        other_user.put()
        other_track = PlaylistTrack(
                    playlist=self.playlist,
                    selector=other_user,
                    freeform_artist_name="Peaches",
                    freeform_track_title="Rock Show")
        other_track.put()

        resp = self.client.get(reverse('playlists_landing_page'))
        assert '[delete]' not in resp.content