Exemplo n.º 1
0
def add_video():
    """添加番剧视频"""
    form = BangumiAddVideoForm().validate_for_api()
    bangumi = form.obj
    with db.auto_commit():
        video = Video()
        video.name = form.name.data
        try:
            file = request.files[form.url.name]
            if not allowed_video_file(file.filename):
                return ReturnObj.get_response(
                    ReturnEnum.VIDEO_TYPE_ERROR.value,
                    "只允许上传mp4 avi flv wmv格式")
            file_url = secure_filename(file.filename)
            url = change_filename(file_url)
            file.save(os.path.join(current_app.config["VIDEO_DIR"], url))
            try:
                video_clip = VideoFileClip(
                    os.path.join(current_app.config["VIDEO_DIR"], url))
                video.length = video_clip.duration
                video_clip.reader.close()
                video_clip.audio.reader.close_proc()
            except Exception as e:
                print(e)
                video.length = None
            video.url = urljoin(current_app.config["VIDEO_PATH"], url)
        except Exception as e:
            return ReturnObj.get_response(ReturnEnum.UPLOAD_VIDEO.value,
                                          "请上传视频")
        try:
            file = request.files[form.logo.name]
            if not allowed_image_file(file.filename):
                return ReturnObj.get_response(
                    ReturnEnum.IMAGE_TYPE_ERROR.value,
                    "只允许上传png jpg jpeg gif格式")
            file_logo = secure_filename(file.filename)
            logo = change_filename(file_logo)
            file.save(os.path.join(current_app.config["LOGO_DIR"], logo))
            video.logo = urljoin(current_app.config["LOGO_PATH"], logo)
        except Exception as e:
            return ReturnObj.get_response(ReturnEnum.UPLOAD_VIDEO_LOGO.value,
                                          "请上传视频封面")
        db.session.add(video)
    with db.auto_commit():
        video = Video.query.filter(Video.name == form.name.data).order_by(
            Video.create_time.desc()).first()
        bangumi.episodes += 1
        bangumi.new_piece += 1
        if form.is_finish.data == 1:
            bangumi.is_finish = 1
        db.session.add(bangumi)
    with db.auto_commit():
        episode = Episode()
        episode.video_id = video.id
        episode.bangumi_id = bangumi.id
        episode.piece = bangumi.new_piece
        db.session.add(episode)
    write_oplog()
    return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success")
Exemplo n.º 2
0
def edit_uploadvideo():
    """编辑审核状态"""
    form = VerificationForm().validate_for_api()
    verification = form.verification
    try:
        verification.status = form.status.data
        verification.admin_id = current_user.id
        db.session.add(verification)
        db.session.commit()
    except Exception as e:
        print(e)
        db.session.rollback()
    uploadvideo = form.uploadvideo
    if verification.status == 1:
        # 审核通过
        try:
            # 审核通过,添加到视频表
            video = Video()
            video.user_id = uploadvideo.user_id
            video.tag_id = uploadvideo.tag_id
            video.name = uploadvideo.name
            video.info = uploadvideo.info

            # 更换视频封面文件位置
            file_name = uploadvideo.logo.rsplit("/", 1)[1]
            src = os.path.join(current_app.config["TMP_DIR"], file_name)
            if os.path.isfile(src):
                des = os.path.join(current_app.config["LOGO_DIR"], file_name)
                shutil.move(src, des)
            else:
                return ReturnObj.get_response(
                    ReturnEnum.UPLOAD_VIDEO_LOGO.value, "上传视频封面不存在")
            video.logo = uploadvideo.logo.replace("tmp", "logo")

            # 更换视频文件位置
            file_name = uploadvideo.url.rsplit("/", 1)[1]
            src = os.path.join(current_app.config["TMP_DIR"], file_name)
            if os.path.isfile(src):
                des = os.path.join(current_app.config["VIDEO_DIR"], file_name)
                shutil.move(src, des)
            else:
                return ReturnObj.get_response(
                    ReturnEnum.UPLOADVIDE0_NOT_EXIST.value, "上传视频不存在")
            video.url = uploadvideo.url.replace("tmp", "video")

            video.release_time = datetime.now()
            db.session.add(video)
        except Exception as e:
            print(e)
            db.session.rollback()
    write_oplog()
    return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success")
Exemplo n.º 3
0
def add_video():
    form = VideoAddForm()
    # 每次刷新列表,动态加载最新的标签
    # form.tag_id.choices = [(v.id, v.name) for v in Tag.query.all()]
    form.validate_for_api()
    with db.auto_commit():
        video = Video()
        video.name = form.name.data
        try:
            file = request.files[form.url.name]
            if not allowed_video_file(file.filename):
                return ReturnObj.get_response(
                    ReturnEnum.VIDEO_TYPE_ERROR.value,
                    "只允许上传mp4 avi flv wmv格式")
            file_url = secure_filename(file.filename)
            url = change_filename(file_url)
            file.save(os.path.join(current_app.config["VIDEO_DIR"], url))
            try:
                video_clip = VideoFileClip(
                    os.path.join(current_app.config["VIDEO_DIR"], url))
                video.length = video_clip.duration
                video_clip.reader.close()
                video_clip.audio.reader.close_proc()
            except Exception as e:
                print(e)
                video.length = None
            video.url = urljoin(current_app.config["VIDEO_PATH"], url)
        except Exception as e:
            return ReturnObj.get_response(ReturnEnum.UPLOAD_VIDEO.value,
                                          "请上传视频")
        try:
            file = request.files[form.logo.name]
            if not allowed_image_file(file.filename):
                return ReturnObj.get_response(
                    ReturnEnum.IMAGE_TYPE_ERROR.value,
                    "只允许上传png jpg jpeg gif格式")
            file_logo = secure_filename(file.filename)
            logo = change_filename(file_logo)
            file.save(os.path.join(current_app.config["LOGO_DIR"], logo))
            video.logo = urljoin(current_app.config["LOGO_PATH"], logo)
        except Exception as e:
            return ReturnObj.get_response(ReturnEnum.UPLOAD_VIDEO_LOGO.value,
                                          "请上传视频封面")
        # 默认所属用户为pilipili番剧
        video.user_id = 6666
        video.info = form.info.data
        # 默认所属标签为连载动画
        video.tag_id = 18
        db.session.add(video)
    write_oplog()
    return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success")