123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- 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('')
|