import bleach from django.contrib.auth.decorators import login_required from django.http import HttpResponse from django.shortcuts import render from django.template import loader from django.views.decorators.http import require_POST from backend.main.models import Playlist @login_required def manage_playlists(request): return render(request, 'manage_playlists.html') @login_required def manage_view_page(request, page): if page == 'import': return render( request, 'manage_playlists_import.html', {'manage_playlists_import_textarea': request.user.profile.manage_playlists_import_textarea} ) elif page == 'create': return render(request, 'manage_playlists_create.html') else: return HttpResponse('Working on this!') @login_required @require_POST def manage_save(request, what): if what == 'manage_playlists_import_textarea': request.user.profile.manage_playlists_import_textarea = bleach.clean(request.POST['import-playlist-textarea']) request.user.save() return HttpResponse('') @login_required @require_POST def manage_import_playlists(request): playlist_links = [ bleach.clean(link) for link in request.POST['import-playlist-textarea'].replace(',', '').split('\n') ] num_playlists_already_in_db = 0 num_playlists_initialized_in_db = 0 num_playlists_not_found = 0 new_playlists = [] old_playlists = [] not_found_playlists = [] done = [] for playlist_link in playlist_links: if playlist_link.strip() != '' and playlist_link.strip() not in done: pl_id = Playlist.objects.getPlaylistId(playlist_link.strip()) if pl_id is None: num_playlists_not_found += 1 continue status = Playlist.objects.initializePlaylist(request.user, pl_id)['status'] if status == -1 or status == -2: print('\nNo such playlist found:', pl_id) num_playlists_not_found += 1 not_found_playlists.append(playlist_link) elif status == -3: # playlist already in db num_playlists_already_in_db += 1 playlist = request.user.playlists.get(playlist_id__exact=pl_id) old_playlists.append(playlist) else: # only if playlist exists on YT, so import its videos print(status) Playlist.objects.getAllVideosForPlaylist(request.user, pl_id) playlist = request.user.playlists.get(playlist_id__exact=pl_id) new_playlists.append(playlist) num_playlists_initialized_in_db += 1 done.append(playlist_link.strip()) request.user.profile.manage_playlists_import_textarea = '' request.user.save() return HttpResponse( loader.get_template('intercooler/manage_playlists_import_results.html').render({ 'new_playlists': new_playlists, 'old_playlists': old_playlists, 'not_found_playlists': not_found_playlists, 'num_playlists_already_in_db': num_playlists_already_in_db, 'num_playlists_initialized_in_db': num_playlists_initialized_in_db, 'num_playlists_not_found': num_playlists_not_found }) ) @login_required @require_POST def manage_create_playlist(request): print(request.POST) return HttpResponse('') @login_required @require_POST def manage_nuke_playlists(request): print(request.POST) return HttpResponse('')