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_modal(channel, video): # Make a new playlist form = PlaylistForm() html = render_template('playlist-modal.html.jinja2', form=form, channel=channel, video=video) if request.is_xhr: 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 = u"Added video to playlist" message_type = 'success' action = 'append' else: message = u"This video is already in that playlist" message_type = 'info' action = 'noop' html_to_return = render_template('new-playlist-tag.html.jinja2', playlist=playlist, channel=channel, video=video) db.session.commit() return jsonify({ 'html': html_to_return, 'message_type': message_type, 'action': action, 'message': message }) if form.errors: html = render_template('playlist-modal.html.jinja2', form=form, channel=channel, video=video) return jsonify({ 'message_type': "error", 'action': 'append', 'html': html }) return jsonify({ 'html': html, 'message_type': 'success', 'action': 'modal-window' }) return html
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)