示例#1
0
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)
示例#2
0
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)
示例#3
0
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)
示例#4
0
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)
示例#5
0
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
示例#6
0
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
示例#7
0
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