def json_search(request): query_string = request.GET.get('q','') songs = get_search_results(query_string, request.user, 'all_songs') fields = ('title', 'album', 'artist') json_obj = [dict((k, v) for (k, v) in song.__dict__.items() if k in fields) for song in songs] return json_response.render_json_response(json.dumps(json_obj))
def json_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() playlist_data = [{'pid': pl.id, 'owner': pl.owner.username, 'name': pl.name} for pl in playlists] return json_response.render_json_response(json.dumps(playlist_data))
def json_search(request): query_string = request.GET.get('q', '') songs = get_search_results(query_string, request.user, 'all_songs') fields = ('title', 'album', 'artist') json_obj = [ dict((k, v) for (k, v) in song.__dict__.items() if k in fields) for song in songs ] return json_response.render_json_response(json.dumps(json_obj))
def json_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() playlist_data = [{ 'pid': pl.id, 'owner': pl.owner.username, 'name': pl.name } for pl in playlists] return json_response.render_json_response(json.dumps(playlist_data))
return _json_control_update(request, channel) def json_control_update(request, channel_id=1): """View handler that serves the JSON API request.""" try: channel = Channel.objects.get(pk=channel_id) except Channel.DoesNotExist: raise Http404 return _json_control_update(request, channel) def _json_control_update(request, channel): """Utility for returning JSON with updated channel status.""" try: channel_info = json_channel_info(request, channel) except ControlError, err: return json_error(str(err)) else: return render_json_response(channel_info) # @permission_required('aenclave.can_queue', 'Queue Song') def queue_to_front(request): form = request.REQUEST songs = get_song_list(form) if len(songs) != 1: raise json_error("Can only queue one song to front") song = songs[0] channel = Channel.default() ctrl = channel.controller() try: ctrl.queue_to_front(song)
"""View handler that serves the JSON API request.""" try: channel = Channel.objects.get(pk=channel_id) except Channel.DoesNotExist: raise Http404 return _json_control_update(request, channel) def _json_control_update(request, channel): """Utility for returning JSON with updated channel status.""" try: channel_info = json_channel_info(request, channel) except ControlError, err: return json_error(str(err)) else: return render_json_response(channel_info) # @permission_required('aenclave.can_queue', 'Queue Song') def queue_to_front(request): form = request.REQUEST songs = get_song_list(form) if len(songs) != 1: raise json_error("Can only queue one song to front") song = songs[0] channel = Channel.default() ctrl = channel.controller() try: ctrl.queue_to_front(song)