diff --git a/marietje/api/views.py b/marietje/api/views.py index 36bbe8b..2e1fb42 100644 --- a/marietje/api/views.py +++ b/marietje/api/views.py @@ -111,17 +111,16 @@ def songs(request): except EmptyPage: songs = paginator.page(paginator.num_pages) - return [song_to_dict(song, user=True) for song in songs.object_list], paginator + songs_dict = [song_to_dict(song, user=True) for song in songs.object_list] + return JsonResponse({ + 'per_page': pagesize, + 'current_page': page, + 'last_page': paginator.num_pages, + 'data': songs_dict, + }) - cache_key = '|'.join(request.POST.get(k) for k in ('all', 'uploader', 'pagesize', 'page')) - songs_dict, paginator = caches['song_search'].get_or_set(cache_key, search_songs, 60*60*2) - - return JsonResponse({ - 'per_page': pagesize, - 'current_page': page, - 'last_page': paginator.num_pages, - 'data': songs_dict - }) + cache_key = '|'.join(request.POST.get(k, '') for k in ('all', 'uploader', 'pagesize', 'page')) + return caches['song_search'].get_or_set(cache_key, search_songs, 60*60*2) @api_auth_required @@ -277,6 +276,9 @@ def upload(request): song = Song(user=request.user, artist=artists[i], title=titles[i], hash=hash, duration=duration) song.save() + # Clear the search cache + caches['song_search'].clear() + upload_counter.inc() return JsonResponse({'success': True})