Exemple #1
0
def movie_add():
    form = MovieForm()
    if form.validate_on_submit():
        data = form.data
        file_url = secure_filename(form.url.data.filename)
        file_logo = secure_filename(form.logo.data.filename)
        if not os.path.exists(app.config["UP_DIR"]):
            os.makedirs(app.config["UP_DIR"])
            os.chmod(app.config["UP_DIR"], "rw")
        url = change_filename(file_url)
        logo = change_filename(file_logo)
        form.url.data.save(app.config["UP_DIR"] + url)
        form.logo.data.save(app.config["UP_DIR"] + logo)
        movie = Movie(title=data["title"],
                      url=url,
                      info=data["info"],
                      logo=logo,
                      star=int(data["star"]),
                      play_nums=0,
                      comment_nums=0,
                      tag_id=int(data["tag_id"]),
                      area=data["area"],
                      release_time=data["release_time"],
                      length=data["length"])
        db.session.add(movie)
        db.session.commit()
        flash("添加电影成功!", "ok")
        oplog = OpLog(admin_id=session["admin_id"],
                      ip=request.remote_addr,
                      reason="添加电影:%s" % data["title"])
        db.session.add(oplog)
        db.session.commit()
        return redirect(url_for("admin.movie_add"))
    return render_template("admin/movie_add.html", form=form)
Exemple #2
0
def admin_add():
    form = AdminForm()
    if form.validate_on_submit():
        data = form.data
        NewAdmin = Admin.query.filter_by(name=data["name"]).count()
        if NewAdmin == 1:
            flash("Admin name exit", "error")
            return redirect(url_for("admin.admin_add"))
        if data["pwd"] != data["r_pwd"]:
            flash("pass word not same", "error")
            return redirect(url_for("admin.admin_add"))
        else:
            from werkzeug.security import generate_password_hash
            NewAdmin = Admin(name=data["name"],
                             pwd=generate_password_hash(data["pwd"]),
                             role_id=data["role_id"],
                             is_super=0)
            db.session.add(NewAdmin)
            db.session.commit()
            flash("admin add success", "ok")
            oplog = OpLog(admin_id=session["aid"],
                          ip=request.remote_addr,
                          reason="add role " + NewAdmin.name)
            db.session.add(oplog)
            db.session.commit()
            return redirect(url_for("admin.admin_add"))

    return render_template("admin/admin_add.html", form=form)
Exemple #3
0
def preview_add():
    form = PreviewForm()
    if form.validate_on_submit():
        data = form.data
        # 如果已有该预告则不添加
        if Preview.query.filter_by(title=data['title']).first():
            flash("预告已经存在,请不要重复添加", "err")
        else:
            with db.auto_commit():
                file_logo = secure_filename(form.logo.data.filename)
                if not os.path.exists(app.config["UP_DIR"]):
                        os.makedirs(app.config["UP_DIR"])
                        os.chmod(app.config["UP_DIR"], "rw")

                logo = change_filename(file_logo)
                form.logo.data.save(app.config["UP_DIR"]+logo)
                new_preview = Preview(
                    title=data['title'],
                    logo=logo
                )
                db.session.add(new_preview)
                # 记录添加预告操作
                new_adminlog = OpLog(
                        admin_id=session['id'],
                        ip=session['login_ip'],
                        reason="添加预告: "+new_preview.title)
                db.session.add(new_adminlog)
        return redirect(url_for("admin.preview_add"))
    return render_template("admin/preview_add.html", form=form)
Exemple #4
0
def auth_edit(id=None):
    # TODO: 修改添加时间为修改时间
    auth = Auth.query.get_or_404(int(id))
    form = AuthForm()
    if form.validate_on_submit():
        data = form.data
        # TODO: 在前端判断数据是否发生了修改, 发生修改了再提交到服务器处理, 减轻服务器压力
        if data["name"] == auth.name and data["url"] == auth.url:
            flash("权限信息不作修改就不要点点点了嘛!", "err")
            return redirect(url_for("admin.auth_edit", id=id))
        if (
            data["name"] != auth.name
            and Auth.query.filter_by(name=data["name"]).count() == 1
        ):
            flash('权限"{0}"已经存在!'.format(data["name"]), "err")
            return redirect(url_for("admin.auth_edit", id=id))
        oplog = OpLog(
            admin_id=session["admin_id"],
            ip=request.remote_addr,
            reason='修改权限"{0}"的信息'.format(auth.name),
        )
        auth.name = data["name"]
        auth.url = data["url"]
        db.session.add(auth)
        db.session.add(oplog)
        db.session.commit()
        flash("权限信息已修改!", "ok")
        return redirect(url_for("admin.auth_edit", id=id))
    return render_template("admin/auth_edit.html", form=form, auth=auth)
Exemple #5
0
def tag_edit(id=None):
    # TODO: 修改添加时间为修改时间
    tag = Tag.query.get_or_404(int(id))
    form = TagForm()
    if form.validate_on_submit():
        data = form.data
        # TODO: 在前端判断数据是否发生了修改, 发生修改了再提交到服务器处理, 减轻服务器压力
        if data["name"] == tag.name:
            flash('标签"{0}"未发生修改!'.format(data["name"]), "err")
            return redirect(url_for("admin.tag_edit", id=id))
        if Tag.query.filter_by(name=data["name"]).count() == 1:
            flash('标签"{0}"已经存在!'.format(data["name"]), "err")
            return redirect(url_for("admin.tag_edit", id=id))
        flash('标签"{0}"已经被修改为"{1}"!'.format(tag.name, data["name"]), "ok")
        oplog = OpLog(
            admin_id=session["admin_id"],
            ip=request.remote_addr,
            reason='修改标签"{0}"为"{1}"'.format(tag.name, data["name"]),
        )
        tag.name = data["name"]
        db.session.add(tag)
        db.session.add(oplog)
        db.session.commit()
        return redirect(url_for("admin.tag_edit", id=id))
    return render_template("admin/tag_edit.html", form=form, tag=tag)
Exemple #6
0
def preview_edit(id=None):
    form = PreviewForm()
    form.logo.validators = []
    preview = Preview.query.get_or_404(int(id))
    if request.method == "GET":
        form.title.data = preview.title
    if form.validate_on_submit():
        data = form.data
        if form.logo.data.filename != "":
            file_logo = secure_filename(form.logo.data.filename)
            preview.logo = change_filename(file_logo)
            form.logo.data.save(app.config["UP_DIR"] + preview.logo)

        preview.title = data["title"]
        db.session.add(preview)
        db.session.commit()
        flash("修改预告成功!", "ok")
        oplog = OpLog(admin_id=session["admin_id"],
                      ip=request.remote_addr,
                      reason="编辑预告:%s" % data["title"])
        db.session.add(oplog)
        db.session.commit()
        return redirect(url_for("admin.preview_edit", id=id))
    return render_template("admin/preview_edit.html",
                           form=form,
                           preview=preview)
Exemple #7
0
def previewAdd():
    form = PreViewForm()
    if form.validate_on_submit():
        data = form.data
        # 获取到封面文件
        file_logo = form.logo.data.filename

        # 判断文件夹是否存在
        if not os.path.exists(app.config['UP_DIR']):
            # 如果不存在就创建
            os.mkdir(app.config['UP_DIR'])
        # 对封面文件进行重名了
        logo = change_filename(file_logo)
        # 保存封面文件
        form.logo.data.save(app.config['UP_DIR'] + logo)
        preview = PreView(title=data.get('title'), logo=logo)
        db.session.add(preview)
        db.session.commit()
        flash("预告片添加成功")
        oplog = OpLog(
            admin_id=session.get("admin_id"),
            ip=request.remote_addr,
            reason="添加预告片:{preview}".format(preview=data.get('title')))
        db.session.add(oplog)
        db.session.commit()
    return render_template("admin/preview_add.html", form=form)
Exemple #8
0
def admin_add():
    form = AdminForm()
    if form.validate_on_submit():
        data = form.data
        if Admin.query.filter_by(name=data["name"]).count() == 1:
            flash('管理员"{0}"已经存在!'.format(data["name"]), "err")
            return redirect(url_for("admin.admin_add"))
        from werkzeug.security import generate_password_hash

        admin = Admin(
            name=data["name"],
            pwd=generate_password_hash(data["pwd"]),
            is_super=1,
            role_id=data["role_id"],
        )
        db.session.add(admin)
        oplog = OpLog(
            admin_id=session["admin_id"],
            ip=request.remote_addr,
            reason='添加管理员"{0}"'.format(data["name"]),
        )
        db.session.add(oplog)
        db.session.commit()
        flash('管理员"{0}"添加成功!'.format(data["name"]), "ok")
        return redirect(url_for("admin.admin_add"))
    return render_template("admin/admin_add.html", form=form)
Exemple #9
0
def role_edit(id=None):
    form = RoleForm()
    role = Role.query.get_or_404(int(id))
    if request.method == "GET":
        form.auths.data = list(map(int, role.auths.split(",")))
    if form.validate_on_submit():
        data = form.data
        if data["name"] == role.name and data["auths"] == list(
            map(int, role.auths.split(","))
        ):
            flash("老板,您未作修改哟~", "err")
            return redirect(url_for("admin.role_edit", id=id))
        role.name = data["name"]
        role.auths = ",".join(map(str, data["auths"]))
        db.session.add(role)
        oplog = OpLog(
            admin_id=session["admin_id"],
            ip=request.remote_addr,
            reason='修改角色"{0}"的信息'.format(data["name"]),
        )
        db.session.add(oplog)
        db.session.commit()
        flash("角色信息修改成功!", "ok")
        return redirect(url_for("admin.role_edit", id=id))
    return render_template("admin/role_edit.html", form=form, role=role)
Exemple #10
0
def preview_edit(id=None):
    form = PreviewForm()
    if form.validate_on_submit():
        data = form.data
        preview = Preview.query.filter_by(id=id).first()
        with db.auto_commit():
            # 修改logo名
            file_logo = secure_filename(form.logo.data.filename)
            if not os.path.exists(app.config["UP_DIR"]):
                    os.makedirs(app.config["UP_DIR"])
                    os.chmod(app.config["UP_DIR"], "rw")

            logo = change_filename(file_logo)
            # 保存logo图片
            form.logo.data.save(app.config["UP_DIR"]+logo)
            preview.title=data['title'],
            preview.logo=logo
            db.session.add(preview)

            # 记录编辑预告操作
            new_adminlog = OpLog(
                    admin_id=session['id'],
                    ip=session['login_ip'],
                    reason="编辑预告: "+data['title'])
            db.session.add(new_adminlog)
        return redirect(url_for("admin.preview_add"))
    return render_template("admin/preview_add.html", form=form)
Exemple #11
0
def preview_add():
    form = PreviewForm()
    if form.validate_on_submit():
        data = form.data
        preview_count = Preview.query.filter_by(title=data["title"]).count()

        if preview_count >= 1:
            flash('预告片"{0}"已经存在!'.format(data["title"]), "err")
            return redirect(url_for("admin.preview_add"))

        file_logo = secure_filename(form.logo.data.filename)

        if not os.path.exists(app.config["UP_DIR"]):
            os.makedirs(app.config["UP_DIR"])
            os.chmod(app.config["UP_DIR"], stat.S_IRWXU)

        logo = change_filename(file_logo)
        form.logo.data.save(app.config["UP_DIR"] + logo)
        preview = Preview(title=data["title"], logo=logo)
        db.session.add(preview)
        oplog = OpLog(
            admin_id=session["admin_id"],
            ip=request.remote_addr,
            reason='添加电影预告"{0}"'.format(data["title"]),
        )
        db.session.add(oplog)
        db.session.commit()
        flash('电影预告"{0}"添加成功!'.format(preview.title), "ok")
        return redirect(url_for("admin.preview_add"))
    return render_template("admin/preview_add.html", form=form)
Exemple #12
0
def tag_add():
    form = TagForm()
    if form.validate_on_submit():
        data = form.data
        tag = Tag.query.filter_by(name=data["name"]).count()
        if tag == 1:
            flash("名称已经存在", "err")
            return redirect(url_for("admin.tag_add"))
        tag = Tag(
            name=data["name"]
        )
        # 添加标签
        db.session.add(tag)
        db.session.commit()
        flash("添加标签成功", "ok")
        # 将操作加入到管理员的操作日志中
        oplog = OpLog(
            admin_id=session["admin_id"],
            # 获取管理员登录ip
            ip=request.remote_addr,
            reason="添加标签:%s" % data["name"]
        )
        db.session.add(oplog)
        db.session.commit()
        redirect(url_for("admin.tag_add"))
    return render_template("admin/tag_add.html", form=form)
Exemple #13
0
def movie_add():
    form = MovieForm()
    if form.validate_on_submit():
        data = form.data
        file_url = secure_filename(form.url.data.filename)
        file_logo = secure_filename(form.logo.data.filename)
        if not os.path.exists(app.config["UP_DIR"]):
            os.makedirs(app.config["UP_DIR"])
            os.chmod(app.config["UP_DIR"], "rw")
        url = change_filename(file_url)
        logo = change_filename(file_logo)
        form.url.data.save(app.config["UP_DIR"] + url)
        form.logo.data.save(app.config["UP_DIR"] + logo)
        movie = Movie(title=data['title'],
                      url=url,
                      info=data['info'],
                      logo=logo,
                      star=int(data['star']),
                      playnum=0,
                      commentnum=0,
                      tag_id=int(data['tag_id']),
                      area=data['area'],
                      releasetime=data["release_time"],
                      length=data['length'])
        db.session.add(movie)
        db.session.commit()
        oplog = OpLog(admin_id=session["aid"],
                      ip=request.remote_addr,
                      reason="add movie " + movie.title)
        db.session.add(oplog)
        db.session.commit()
        flash("movie add success", "ok")
        return redirect(url_for('admin.movie_add'))
    return render_template("admin/movie_add.html", form=form)
Exemple #14
0
def movieEdit(id=None):
    if id is not None:
        form = MovieForm()
        movie = Movie.query.get_or_404(id)
        movie_title = movie.title
        if request.method == "GET":
            form.info.data = movie.info
            form.star.data = movie.star
            form.tag_id.data = movie.tag_id
        if form.validate_on_submit():
            data = form.data
            # 获取到视频的地址
            file_url = form.url.data.filename
            # 获取到封面文件
            file_logo = form.logo.data.filename
            # 定义文件的保存
            # 文件是否存在
            if not os.path.exists(app.config['UP_DIR']):
                # 如果不存在就创建
                os.mkdir(app.config['UP_DIR'])
            # 对视频的名称进行重命名
            url = change_filename(file_url)
            # 对封面图片进行重命名
            logo = change_filename(file_logo)
            # 保存视频
            form.url.data.save(app.config["UP_DIR"] + url)
            # 保存封面
            form.logo.data.save(app.config["UP_DIR"] + logo)
            # 删除之前的数据, 如果文件不存在,有可能抛出异常
            try:
                # 删除视频文件
                os.remove(app.config["UP_DIR"] + movie.url)
                # 删除封面图
                os.remove(app.config["UP_DIR"] + movie.logo)
            except:
                pass
            movie.title = data.get('title')
            movie.url = url
            movie.info = data.get('info')
            movie.logo = logo
            movie.star = int(data.get('star'))
            movie.tag_id = int(data.get('tag_id'))
            movie.arga = data.get('arga')
            movie.release_time = data.get('release_time')
            movie.length = data.get('length')
            db.session.add(movie)
            db.session.commit()
            flash("电影修改成功")
            oplog = OpLog(admin_id=session.get("admin_id"),
                          ip=request.remote_addr,
                          reason="编辑电影:{movie_title}-->{movie}".format(
                              movie_title=movie_title,
                              movie=data.get('title')))
            db.session.add(oplog)
            db.session.commit()
            return redirect(url_for("admin.movieEdit", id=id))
        return render_template("admin/movie_edit.html", form=form, movie=movie)
Exemple #15
0
def movie_delete(id=None):
    movie_del = Movie.query.filter_by(id=id).first_or_404()
    db.session.delete(movie_del)
    db.session.commit()
    oplog = OpLog(admin_id=session["aid"],
                  ip=request.remote_addr,
                  reason="delete movie " + movie_del.title)
    db.session.add(oplog)
    db.session.commit()
    flash("Movie delete", "ok")
    return redirect(url_for("admin.movie_list", page=1))
Exemple #16
0
def comment_delete(id=None):
    comment = Comment.query.get_or_404(id)
    db.session.delete(comment)
    db.session.commit()
    oplog = OpLog(admin_id=session["aid"],
                  ip=request.remote_addr,
                  reason="delete comment " + comment.content)
    db.session.add(oplog)
    db.session.commit()
    flash("delete success", 'ok')
    return redirect(url_for("admin.comment_list", page=1))
Exemple #17
0
def tag_delete(id=None):
    tag_del = Tag.query.filter_by(id=id).first_or_404()
    db.session.delete(tag_del)
    db.session.commit()
    oplog = OpLog(admin_id=session["aid"],
                  ip=request.remote_addr,
                  reason="delete tag " + tag_del.name)
    db.session.add(oplog)
    db.session.commit()
    flash("tag delete", "ok")
    return redirect(url_for("admin.tag_list", page=1))
Exemple #18
0
def auth_del(id=None):
    auth = Auth.query.filter_by(id=id).first_or_404()
    db.session.delete(auth)
    db.session.commit()
    flash("删除权限成功!", "ok")
    oplog = OpLog(admin_id=session["admin_id"],
                  ip=request.remote_addr,
                  reason="删除权限:%s" % auth.name)
    db.session.add(oplog)
    db.session.commit()
    return redirect(url_for("admin.auth_list", page=1))
Exemple #19
0
def role_del(id=None):
    role = Role.query.get_or_404(int(id))
    db.session.delete(role)
    db.session.commit()
    flash("删除角色成功!", "ok")
    oplog = OpLog(admin_id=session["admin_id"],
                  ip=request.remote_addr,
                  reason="删除角色:%s" % role.name)
    db.session.add(oplog)
    db.session.commit()
    return redirect(url_for("admin.role_list", page=1))
Exemple #20
0
def comment_del(id=None):
    comment = Comment.query.get_or_404(int(id))
    db.session.delete(comment)
    db.session.commit()
    flash("删除评论成功!", "ok")
    oplog = OpLog(admin_id=session["admin_id"],
                  ip=request.remote_addr,
                  reason="删除评论:%s" % comment.content)
    db.session.add(oplog)
    db.session.commit()
    return redirect(url_for("admin.comment_list", page=1))
Exemple #21
0
def user_del(id=None):
    user = User.query.get_or_404(int(id))
    db.session.delete(user)
    db.session.commit()
    flash("删除会员成功!", "ok")
    oplog = OpLog(admin_id=session["admin_id"],
                  ip=request.remote_addr,
                  reason="删除会员:%s" % user.name)
    db.session.add(oplog)
    db.session.commit()
    return redirect(url_for("admin.user_list", page=1))
Exemple #22
0
def user_delete(id=None):
    user = User.query.get_or_404(id)
    db.session.delete(user)
    db.session.commit()
    oplog = OpLog(admin_id=session["aid"],
                  ip=request.remote_addr,
                  reason="delete user " + user.name)
    db.session.add(oplog)
    db.session.commit()
    flash("delete success", 'ok')
    return redirect(url_for("admin.user_list", page=1))
Exemple #23
0
def admin_list_delete(id=None):
    admin_list = Admin.query.get_or_404(id)
    db.session.delete(admin_list)
    db.session.commit()
    oplog = OpLog(admin_id=session["aid"],
                  ip=request.remote_addr,
                  reason="delete admin_list " + admin_list.name)
    db.session.add(oplog)
    db.session.commit()
    flash("delete success", 'ok')
    return redirect(url_for("admin.admin_list", page=1))
Exemple #24
0
def preview_del(id=None):
    preview = Preview.query.get_or_404(int(id))
    db.session.delete(preview)
    db.session.commit()
    flash("删除预告成功!", "ok")
    oplog = OpLog(admin_id=session["admin_id"],
                  ip=request.remote_addr,
                  reason="删除预告:%s" % preview.title)
    db.session.add(oplog)
    db.session.commit()
    return redirect(url_for("admin.preview_list", page=1))
Exemple #25
0
def logout():
    with db.auto_commit():
        # 记录注销操作
        new_adminlog = OpLog(admin_id=session['id'],
                             ip=session['login_ip'],
                             reason="注销")
        db.session.add(new_adminlog)
    # session.clear()
    session.pop("admin", None)
    session.pop("id", None)
    return redirect(url_for("admin.login"))
Exemple #26
0
def role_del(id=None):
    role = Role.query.filter_by(id=id).first()
    if role:
        with db.auto_commit():
            db.session.delete(role)
            # 记录删除角色操作
            new_adminlog = OpLog(admin_id=session['id'],
                                 ip=session['login_ip'],
                                 reason="删除角色: " + role.name)
            db.session.add(new_adminlog)
        return redirect(url_for('admin.role_list', page=1))
    return render_template("admin/role_list.html")
Exemple #27
0
def user_del(id=None):
    user = Users.query.filter_by(id=id).first()
    if user:
        with db.auto_commit():
            db.session.delete(user)
            # 记录删除会员操作
            new_adminlog = OpLog(
                    admin_id=session['id'],
                    ip=session['login_ip'],
                    reason="删除会员: "+user.nickname)
            db.session.add(new_adminlog)
    return redirect(url_for("admin.user_list", page=1))
Exemple #28
0
def tagDel(id=None):
    if id is not None:
        tag = Tag.query.filter_by(id=id).first_or_404()
        db.session.delete(tag)
        db.session.commit()
        flash("删除成功")
        oplog = OpLog(admin_id=session.get("admin_id"),
                      ip=request.remote_addr,
                      reason="删除标签:{tag}".format(tag=tag.name))
        db.session.add(oplog)
        db.session.commit()
        return redirect(url_for("admin.tagList", page=1))
Exemple #29
0
def userDelete(id=None):
    if id is not None:
        user = User.query.get_or_404(id)
        db.session.delete(user)
        db.session.commit()
        flash("删除成功")
        oplog = OpLog(admin_id=session.get("admin_id"),
                      ip=request.remote_addr,
                      reason="删除会员:{user}".format(user=user.name))
        db.session.add(oplog)
        db.session.commit()
        return redirect(url_for('admin.userList', page=1))
Exemple #30
0
def commentDelete(id=None):
    if id is not None:
        comment = Comment.query.get_or_404(id)
        db.session.delete(comment)
        db.session.commit()
        flash("删除成功")
        oplog = OpLog(admin_id=session.get("admin_id"),
                      ip=request.remote_addr,
                      reason="删除评论:{comment}".format(comment=comment.content))
        db.session.add(oplog)
        db.session.commit()
        return redirect(url_for('admin.commentList', page=1))