def playlist_import(channel): # Import playlist form = PlaylistImportForm() form.channel = channel if form.validate_on_submit(): playlist = Playlist(channel=channel) form.populate_obj(playlist) try: process_playlist(playlist, playlist_url=form.playlist_url.data) if not playlist.name: playlist.make_name() db.session.add(playlist) db.session.commit() cache.delete('data/featured-channels') except (DataProcessingError, ValueError) as e: flash(e.message, category="error") return render_form(form=form, title="Import Playlist", submit=u"Import", cancel_url=channel.url_for(), ajax=False) flash(u"Imported playlist '%s'." % playlist.title, 'success') return render_redirect(playlist.url_for(), code=303) return render_form(form=form, title="Import Playlist", submit=u"Import", cancel_url=channel.url_for(), ajax=False)
def playlist_new(channel): # Make a new playlist form = PlaylistForm() form.channel = channel if form.validate_on_submit(): playlist = Playlist(channel=channel) form.populate_obj(playlist) if not playlist.name: playlist.make_name() db.session.add(playlist) db.session.commit() flash(u"Created playlist '%s'." % playlist.title, 'success') return render_redirect(playlist.url_for(), code=303) return render_form(form=form, title="New Playlist", submit=u"Create", cancel_url=channel.url_for(), ajax=True)
def playlist_import(channel): # Import playlist form = PlaylistImportForm() form.channel = channel if form.validate_on_submit(): playlist = Playlist(channel=channel) form.populate_obj(playlist) try: process_playlist(playlist, playlist_url=form.playlist_url.data) if not playlist.name: playlist.make_name() db.session.add(playlist) db.session.commit() except (DataProcessingError, ValueError) as e: flash(e.message, category="error") return render_form(form=form, title="Import Playlist", submit=u"Import", cancel_url=channel.url_for(), ajax=False) flash(u"Imported playlist '%s'." % playlist.title, 'success') return render_redirect(playlist.url_for(), code=303) return render_form(form=form, title="Import Playlist", submit=u"Import", cancel_url=channel.url_for(), ajax=False)
def playlist_new_modal(channel, video): # Make a new playlist form = PlaylistForm() if request.method == 'GET': html_form = render_form(form=form, title=_("New Playlist"), submit=_("Save"), cancel_url=channel.url_for(), ajax=False, with_chrome=False) return {'channel': dict(channel.current_access()), 'form': html_form} if form.validate_on_submit(): playlist = Playlist(channel=channel) form.populate_obj(playlist) if not playlist.name: playlist.make_name() db.session.add(playlist) stream_playlist = channel.playlist_for_stream(create=True) if video not in stream_playlist.videos: stream_playlist.videos.append(video) if video not in playlist.videos: playlist.videos.append(video) message = "Added video to playlist" else: message = "This video is already in that playlist" db.session.commit() return {'status': 'ok', 'doc': _(message), 'result': {'new_playlist_url': playlist.url_for()}}, 201 return {'status': 'error', 'errors': form.errors}, 400
def playlist_import(channel): form = PlaylistImportForm() form.channel = channel if request.method == "GET": html_form = render_form(form=form, title=_("Import Playlist"), submit=_("Import"), cancel_url=channel.url_for(), ajax=True, with_chrome=False) return {'channel': dict(channel.current_access()), 'form': html_form} if form.validate_on_submit(): playlist = Playlist(channel=channel) form.populate_obj(playlist) try: process_playlist(playlist, playlist_url=form.playlist_url.data) if not playlist.name: playlist.make_name() db.session.add(playlist) db.session.commit() cache.delete('data/featured-channels') return {'status': 'ok', 'doc': _("Imported playlist {title}.".format(title=playlist.title)), 'result': {'new_playlist_url': playlist.url_for()}}, 201 except (DataProcessingError, ValueError) as e: return {'status': 'error', 'errors': {'playlist_url': [e.message]}}, 400 return {'status': 'error', 'errors': form.errors}, 400
def playlist_new(channel): form = PlaylistForm() form.channel = channel if request.method == 'GET': form.published_date.data = date.today() html_form = render_form(form=form, title=_("New Playlist"), submit=_("Create"), cancel_url=channel.url_for(), ajax=True, with_chrome=False) return {'channel': dict(channel.current_access()), 'form': html_form} try: if form.validate_on_submit(): playlist = Playlist(channel=channel) form.populate_obj(playlist) if not playlist.name: playlist.make_name() db.session.add(playlist) db.session.commit() return {'status': 'ok', 'doc': _("Created playlist {title}.".format(title=playlist.title)), 'result': {'new_playlist_url': playlist.url_for()}}, 201 return {'status': 'error', 'errors': form.errors}, 400 except UploadNotAllowed as e: return {'status': 'error', 'errors': [e.message]}, 400