1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- 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("")
|