def xml_user_playlists(request): if request.user.is_authenticated(): query = Q(owner=request.user) | Q(group__in=request.user.groups.all()) playlists = Playlist.objects.filter(query) else: playlists = Playlist.objects.none() return render_xml_to_response('aenclave/playlist_list.xml', {'playlist_list':playlists})
def xml_user_playlists(request): if request.user.is_authenticated(): query = Q(owner=request.user) | Q(group__in=request.user.groups.all()) playlists = Playlist.objects.filter(query) else: playlists = Playlist.objects.none() return render_xml_to_response('aenclave/playlist_list.xml', {'playlist_list': playlists})
def xml_update(request): # TODO(rnk): This code is dead and untested. form = request.POST channel_id = get_integer(form, 'channel', 1) try: channel = Channel.objects.get(pk=channel_id) except Channel.DoesNotExist: return xml_error('invalid channel id: ' + repr(channel_id)) timestamp = get_integer(form, 'timestamp', None) if timestamp is None: return xml_error('invalid timestamp') elif timestamp >= channel.last_touched_timestamp(): # up-to-date timestamp try: snapshot = request.get_channel_snapshot(channel) if snapshot.status != "playing": return simple_xml_response('continue') elapsed_time = snapshot.time_elapsed total_time = snapshot.current_song.time return render_xml_to_response('aenclave/update.xml', {'elapsed_time':elapsed_time, 'total_time':total_time}) except ControlError, err: return xml_error(str(err)) else: return simple_xml_response('reload') # old timestamp
def xml_update(request): # TODO(rnk): This code is dead and untested. form = request.POST channel_id = get_integer(form, 'channel', 1) try: channel = Channel.objects.get(pk=channel_id) except Channel.DoesNotExist: return xml_error('invalid channel id: ' + repr(channel_id)) timestamp = get_integer(form, 'timestamp', None) if timestamp is None: return xml_error('invalid timestamp') elif timestamp >= channel.last_touched_timestamp(): # up-to-date timestamp try: snapshot = request.get_channel_snapshot(channel) if snapshot.status != "playing": return simple_xml_response('continue') elapsed_time = snapshot.time_elapsed total_time = snapshot.current_song.time return render_xml_to_response('aenclave/update.xml', { 'elapsed_time': elapsed_time, 'total_time': total_time }) except ControlError, err: return xml_error(str(err))
# Update artist. artist = get_unicode(form, 'artist') if artist is not None: song.artist = artist audio['artist'] = artist # Update track number. if form.get('track', None) == '': song.track = 0 else: track = get_integer(form, 'track') if track is not None and 0 <= track < 999: song.track = track audio['tracknumber'] = unicode(track) # Save and report success. song.save() audio.save() return render_xml_to_response('done_editing.xml', {'song':song}) @permission_required_json('aenclave.change_song') def json_edit(request): if not request.user.is_authenticated(): return json_error('user not logged in') form = request.POST try: song = Song.objects.get(pk=int(form.get('id',''))) except (ValueError, TypeError, Song.DoesNotExist), err: return json_error(str(err)) audio = EasyMP3(song.audio.path) # Update title. title = get_unicode(form, 'title') if title: # Disallow empty titles. song.title = title
# Update artist. artist = get_unicode(form, 'artist') if artist is not None: song.artist = artist audio['artist'] = artist # Update track number. if form.get('track', None) == '': song.track = 0 else: track = get_integer(form, 'track') if track is not None and 0 <= track < 999: song.track = track audio['tracknumber'] = unicode(track) # Save and report success. song.save() audio.save() return render_xml_to_response('done_editing.xml', {'song': song}) @permission_required_json('aenclave.change_song') def json_edit(request): if not request.user.is_authenticated(): return json_error('user not logged in') form = request.POST try: song = Song.objects.get(pk=int(form.get('id', ''))) except (ValueError, TypeError, Song.DoesNotExist), err: return json_error(str(err)) audio = EasyMP3(song.audio.path) # Update title. title = get_unicode(form, 'title')