def edit_animation(): """编辑轮播图""" form = AnimationEditForm().validate_for_api() animation = form.obj with db.auto_commit(): if form.name.data: animation.name = form.name.data 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)) animation.logo = urljoin(current_app.config["LOGO_PATH"], logo) except Exception as e: pass if form.url.data: animation.url = form.url.data if form.tag_id.data: animation.tag_id = form.tag_id.data db.session.add(animation) write_oplog() return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success")
def edit_user(): """编辑用户信息""" form = UserEditForm().validate_for_api() baseuser = form.obj user = User.query.filter(User.id == baseuser.id).first() with db.auto_commit(): if form.name.data: baseuser.name = form.name.data if form.email.data: user.email = form.email.data if form.phone.data: user.phone = form.phone.data if form.info.data: user.info = form.info.data try: a = request.files file = request.files[form.face.name] if not allowed_image_file(file.filename): return ReturnObj.get_response( ReturnEnum.IMAGE_TYPE_ERROR.value, "只允许上传png jpg jpeg gif格式") file_face = secure_filename(file.filename) face = change_filename(file_face) file.save(os.path.join(current_app.config["FACE_DIR"], face)) user.face = urljoin(current_app.config["FACE_PATH"], face) except: pass db.session.add(baseuser) db.session.add(user) return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success")
def is_login(): """判断当前用户是否登录""" if current_user.is_authenticated: user = User.query.filter(User.id == current_user.id).first() r = {"name": current_user.name, "face": user.face if user else None} return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "ok", data=r) return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "cancel")
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")
def register_user(form): """添加普通用户""" try: # 基本用户 baseuser = BaseUser() baseuser.account = form.account.data baseuser.pwd = form.pwd.data baseuser.name = form.name.data baseuser.gender = form.gender.data db.session.add(baseuser) db.session.commit() except Exception as e: db.session.rollback() print(e) return ReturnObj.get_response(ReturnEnum.ADD_BASEUSER_FAIL.value, "添加用户基本信息失败") baseuser = BaseUser.query.filter( BaseUser.account == form.account.data).first() try: # 用户其他信息 user = User() user.id = baseuser.id if form.phone.data: user.phone = form.phone.data if form.email.data: user.email = form.email.data if form.info.data: user.info = form.info.data try: file = request.files[form.face.name] if not allowed_image_file(file.filename): return ReturnObj.get_response( ReturnEnum.IMAGE_TYPE_ERROR.value, "只允许上传png jpg jpeg gif格式") file_face = secure_filename(file.filename) face = change_filename(file_face) file.save(os.path.join(current_app.config["FACE_DIR"], face)) user.face = urljoin(current_app.config["FACE_PATH"], face) except BadRequestKeyError as e: pass db.session.add(user) db.session.commit() except Exception as e: db.session.rollback() print(e) return ReturnObj.get_response(ReturnEnum.ADD_USER_FAIL.value, "添加用户额外信息失败") try: user_role = UserRole() user_role.user_id = baseuser.id user_role.role_id = Role.query.filter(Role.name == "普通用户").first().id db.session.add(user_role) db.session.commit() except Exception as e: db.session.rollback() print(e) return ReturnObj.get_response(ReturnEnum.ADD_USERROLE_FAIL.value, "赋予用户角色失败") return baseuser
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")
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")
def add_admin(): """添加管理员""" form = AdminAddForm() # 动态加载最新的角色列表 form.role_id.choices = [(v.id, v.id) for v in Role.query.all()] # 验证 form.validate_for_api() baseuser = register_admin(form) if baseuser: write_oplog() return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success", data={"id": baseuser.id}) return ReturnObj.get_response(ReturnEnum.FAIL.value, "fail")
def edit_video(): form = VideoEditForm() # form.tag_id.choices = [(v.id, v.name) for v in Tag.query.all()] form.validate_for_api() # 验证通过,从obj中获取查找到的对象 video = form.obj with db.auto_commit(): if form.name.data: video.name = form.name.data if form.info.data: video.info = form.info.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: pass 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: pass # if form.tag_id.data: # video.tag_id = form.tag_id.data write_oplog() return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success")
def get_bangumicol(): """获取番剧订阅""" form = PageForm().validate_for_api() page_data = BangumiCol.query.filter( BangumiCol.user_id == current_user.id).order_by( BangumiCol.create_time.desc()).paginate(error_out=False, page=int(form.page.data), per_page=15) bangumis = [] for i in page_data.items: bangumi = Bangumi.query.filter(Bangumi.id == i.bangumi_id).first() tag = Tag.query.filter(Tag.id == bangumi.tag_id).first() tmp = { "id": bangumi.id, "name": bangumi.name, "info": bangumi.info, "logo": bangumi.logo, "area": bangumi.area, "tag": tag.name if tag else "未知" } bangumis.append(tmp) r = { "has_next": page_data.has_next, "has_prev": page_data.has_prev, "pages": page_data.pages, "page": page_data.page, "bangumis": bangumis, "total": page_data.total } return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success", data=r)
def logout(): """退出登录""" # 从session中清除当前用户的信息 logout_user() # 清空session # session.clear return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success")
def del_tag(): form = IdForm().validate_for_api() tag = Tag.query.filter(Tag.id == form.id.data).first_or_404("找不到该标签") with db.auto_commit(): db.session.delete(tag) write_oplog() return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success")
def get_com_history(): """获取评论记录""" form = PageForm().validate_for_api() page_data = Comment.query.filter(Comment.user_id == current_user.id). \ paginate(error_out=False, page=int(form.page.data), per_page=int(current_app.config["PER_PAGE_COM"])) comments = [] for i in page_data.items: video = Video.query.filter(Video.id == i.video_id).frist() baseuser = BaseUser.query.filter(BaseUser.id == video.user_id).first() tag = Tag.query.filter(Tag.id == video.tag_id).first() tmp = { "id": video.id, "name": video.name, "logo": video.logo, "user": { "id": baseuser.id, "name": baseuser.name, } if baseuser else None, "tag": tag.name if tag else None, "time": i.update_time.strftime("%Y-%m-%d %H:%M:%S") } comments.append(tmp) r = { "has_next": page_data.has_next, "has_prev": page_data.has_prev, "pages": page_data.pages, "page": page_data.page, "total": page_data.total, "comments": comments } return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success", data=r)
def get_view_history(): """获取观看历史记录""" form = PageForm().validate_for_api() page_data = ViewLog.query.filter( ViewLog.user_id == current_user.id).order_by( ViewLog.update_time.asc()).paginate(error_out=False, page=int(form.page.data), per_page=20) videos = [] for i in page_data.items: video = Video.query.filter(Video.id == i.video_id).frist() baseuser = BaseUser.query.filter(BaseUser.id == video.user_id).first() tag = Tag.query.filter(Tag.id == video.tag_id).first() tmp = { "id": video.id, "name": video.name, "logo": video.logo, "user": { "id": baseuser.id, "name": baseuser.name, } if baseuser else None, "tag": tag.name if tag else None, "time": i.update_time.strftime("%Y-%m-%d %H:%M:%S") } videos.append(tmp) r = { "has_next": page_data.has_next, "has_prev": page_data.has_prev, "pages": page_data.pages, "page": page_data.page, "total": page_data.total, "videos": videos } return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success", data=r)
def get_user(): """查看用户信息""" baseuser = BaseUser.query.filter(BaseUser.id == current_user.id). \ first_or_404(description="找不到该用户") user = User.query.filter(User.id == baseuser.id).first() r = { "user": { "id": baseuser.id, "name": baseuser.name, "account": baseuser.account, "gender": GenderEnum(baseuser.gender).name, "email": user.email if user else None, "phone": user.phone if user else None, "info": user.info if user else None, "face": user.face if user else None, "create_time": baseuser.create_time.strftime("%Y-%m-%d %H:%M:%S") }, "follownum": num_assign( Follow.query.filter(Follow.user_id == current_user.id).count()), "fannum": num_assign( Follow.query.filter(Follow.follow_id == current_user.id).count()) } return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success", data=r)
def del_video(): form = IdForm().validate_for_api() video = Video.query.get_or_404(form.id.data, "找不到该视频") with db.auto_commit(): db.session.delete(video) write_oplog() return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success")
def get_my_video(): """获取自己上传的视频""" form = PageForm().validate_for_api() page_data = Video.query.filter(Video.user_id == current_user.id).order_by( Video.create_time.desc()).paginate(error_out=False, page=int(form.page.data), per_page=20) videos = [] for i in page_data.items: baseuser = BaseUser.query.filter(BaseUser.id == i.user_id).first() tmp = { "id": i.id, "name": i.name, "playnum": i.playnum, "colnum": i.colnum, "logo": i.logo, "user": { "id": baseuser.id, "name": baseuser.name, }, "release_time": i.release_time.strftime("%Y-%m-%d %H:%M:%S"), "length": i.length, } videos.append(tmp) r = { "has_next": page_data.has_next, "has_prev": page_data.has_prev, "pages": page_data.pages, "page": page_data.page, "videos": videos, "total": page_data.total } return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success", data=r)
def list_animation(): """列出轮播图""" form = PageForm().validate_for_api() page_data = Animation.query if form.tag_id.data == -1: pass else: page_data = page_data.filter(Animation.tag_id == form.tag_id.data) if form.q.data: page_data = page_data.filter( or_(Animation.id == form.q.data, Animation.name.like("%" + form.q.data + "%"))) page_data = page_data.order_by(Animation.create_time.desc()). \ paginate(error_out=False, page=int(form.page.data), per_page=int(form.pagesize.data)) animations = [] for i in page_data.items: tag = Tag.query.filter(Tag.id == i.tag_id).first() animation = { "id": i.id, "tag": tag.name if tag else "未知", "name": i.name, "logo": i.logo, "url": i.url } animations.append(animation) r = { "has_next": page_data.has_next, "has_prev": page_data.has_prev, "pages": page_data.pages, "page": page_data.page, "total": page_data.total, "animations": animations } write_oplog() return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success", data=r)
def search_user(): """搜索用户""" form = SearchForm().validate_for_api() page_data = BaseUser.query.filter(BaseUser.name.like("%" + form.q.data + "%")). \ paginate(error_out=False, page=int(form.page.data), per_page=20) baseusers = [] for i in page_data.items: user = User.query.filter(User.id == i.id).first() baseuser = { "id": i.id, "name": i.name, "info": user.info, "face": user.face, "post_num": 0, "fannum": num_assign(Follow.query.filter(Follow.follow_id == i.id).count()), "follownum": num_assign(Follow.query.filter(Follow.user_id == i.id).count()), } baseusers.append(baseuser) r = { "has_next": page_data.has_next, "has_prev": page_data.has_prev, "pages": page_data.pages, "page": page_data.page, "total": page_data.total, "baseusers": baseusers } return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success", data=r)
def get_relevant(): """获得视频页面下的相关推荐视频""" form = TagForm().validate_for_api() videos = Video.query.filter(Video.tag_id == form.tag_id.data). \ order_by(Video.create_time.desc()).limit(30).all() random.shuffle(videos) if len(videos) <= 10: pass else: videos = random.sample(videos, random.randint(len(videos) - random.randint(2, 9), len(videos))) tmp = [] for i in videos: baseuser = BaseUser.query.filter(BaseUser.id == i.user_id).first() video = { "id": i.id, "name": i.name, "logo": i.logo, "playnum": num_assign(i.playnum), "commentnum": num_assign(i.commentnum), "user": { "id": baseuser.id, "name": baseuser.name }, "length": i.length, "is_bangumi": False } tmp.append(video) r = { "total": len(videos), "videos": tmp } return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success", data=r)
def list_module(): """列出权限模块""" form = PageForm().validate_for_api() page_data = AuthModule.query if form.q.data: page_data = page_data.filter(or_(AuthModule.id == form.q.data, AuthModule.name.like("%" + form.q.data + "%"))) page_data = page_data.order_by(AuthModule.create_time.desc()). \ paginate(error_out=False, page=int(form.page.data), per_page=int(form.pagesize.data)) modules = [] for i in page_data.items: module = { "id": i.id, "name": i.name, "module": i.module, "create_time": i.create_time.strftime("%Y-%m-%d %H:%M:%S") } modules.append(module) r = { "has_next": page_data.has_next, "has_prev": page_data.has_prev, "pages": page_data.pages, "page": page_data.page, "total": page_data.total, "modules": modules } write_oplog() return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success", data=r)
def get_timeline(): """获取国创时间表""" select = Bangumi.query.filter( Bangumi.is_finish == FinishEnum.UNFINISH.value, Bangumi.tag_id == 3) r = {} for i in range(1, 8): bangumis = select.filter(Bangumi.update_weekday == i).all() one = { "guochuangs": [{ "id": j.id, "name": j.name, "logo": j.logo, "new_piece": j.new_piece, "update_time": j.update_time.strftime("%H:%M:%S"), "update_weekday": j.update_weekday, "date": datetime.datetime.now().date().strftime("%Y-%m-%d") } for j in bangumis] } r[str(i)] = one return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success", data=r)
def get_latest(): """获取最新投稿""" form = NewForm().validate_for_api() tag = None if form.tag_id.data == -1: videos = Video.query.limit(form.number.data).all() else: # 获取标签及其子标签 sub_tags = [i.id for i in Tag.query.filter(Tag.parent_id == form.tag_id.data).all()] videos = Video.query.filter(or_(Video.tag_id == form.tag_id.data, Video.tag_id.in_(sub_tags))).order_by( Video.create_time.desc()).limit(form.number.data).all() tag = Tag.query.filter(Tag.id == form.tag_id.data).first() random.shuffle(videos) r = { "tag": tag.name if tag else "全部", "total": len(videos), "videos": [{ "id": i.id, "name": i.name, "playnum": num_assign(i.playnum), "commentnum": num_assign(i.commentnum), "logo": i.logo, "length": i.length, "is_bangumi": False } for i in videos] } return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success", data=r)
def list_admin(): """分页列出管理员的信息""" form = PageForm().validate_for_api() page_data = BaseUser.query.join(Admin, Admin.id == BaseUser.id) if form.q.data: page_data = page_data.filter( or_(BaseUser.id == form.q.data, BaseUser.name.like("%" + form.q.data + "%"))) page_data = page_data.order_by(BaseUser.create_time.desc()). \ paginate(error_out=False, page=int(form.page.data), per_page=int(form.pagesize.data)) admins = [] for i in page_data.items: roles = [] for j in Role.query.join(UserRole, UserRole.role_id == Role.id).filter( UserRole.user_id == i.id).all(): role = {"id": j.id, "name": j.name} roles.append(role) admin = { "id": i.id, "account": i.account, "name": i.name, "gender": i.gender, "roles": roles } admins.append(admin) r = { "has_next": page_data.has_next, "has_prev": page_data.has_prev, "pages": page_data.pages, "page": page_data.page, "total": page_data.total, "admins": admins } write_oplog() return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success", data=r)
def list_user(): """列出用户""" form = PageForm().validate_for_api() page_data = BaseUser.query if form.q.data: page_data = page_data.join(User, BaseUser.id == User.id). \ filter(or_(BaseUser.id == form.q.data, BaseUser.name.like("%" + form.q.data + "%"))) page_data = page_data.order_by(BaseUser.create_time.desc()). \ paginate(error_out=False, page=int(form.page.data), per_page=int(form.pagesize.data)) users = [] for i in page_data.items: user = User.query.filter(User.id == i.id).first() one = { "id": i.id, "name": i.name, "account": i.account, "gender": i.gender, "email": user.email if user else None, "phone": user.phone if user else None, "info": user.info if user else None, "face": user.face if user else None, "create_time": i.create_time.strftime("%Y-%m-%d %H:%M:%S"), } users.append(one) r = { "has_next": page_data.has_next, "has_prev": page_data.has_prev, "pages": page_data.pages, "page": page_data.page, "total": page_data.total, "users": users } write_oplog() return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success", data=r)
def del_animation(): """删除轮播图""" form = IdForm().validate_for_api() animation = Animation.query.get_or_404(form.id.data, "找不到该轮播图") with db.auto_commit(): db.session.delete(animation) write_oplog() return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success")
def del_comment(): """删除评论""" form = IdForm().validate_for_api() comment = Comment.query.filter(Comment.id == form.id.data).first_or_404(description="找不到该评论") with db.auto_commit(): db.session.delete(comment) write_oplog() return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success")
def add_user(): """添加用户""" form = AdminAddUserForm().validate_for_api() baseuser = register_user(form) write_oplog() return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success", data={"id": baseuser.id})
def edit_user(): """编辑用户""" form = AdminEditUserForm().validate_for_api() baseuser = form.baseuser user = form.user try: if form.name.data: baseuser.name = form.name.data if form.gender.data: baseuser.gender = form.gender.data if form.pwd.data: baseuser.pwd = form.pwd.data db.session.add(baseuser) db.session.commit() except Exception as e: db.session.rollback() print(e) try: if form.email.data: user.email = form.email.data if form.phone.data: user.phone = form.phone.data if form.info.data: user.info = form.info.data try: file = request.files[form.face.name] if not allowed_image_file(file.filename): return ReturnObj.get_response( ReturnEnum.IMAGE_TYPE_ERROR.value, "只允许上传png jpg jpeg gif格式") file_face = secure_filename(file.filename) face = change_filename(file_face) file.save(os.path.join(current_app.config["FACE_DIR"], face)) user.face = urljoin(current_app.config["FACE_PATH"], face) except BadRequestKeyError as e: pass db.session.add(user) db.session.commit() except Exception as e: db.session.rollback() print(e) write_oplog() return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success", data={"id": baseuser.id})
def del_by_video(): """根据视频id删除该视频的所有评论""" form = IdForm().validate_for_api() comments = Comment.query.filter(Comment.video_id == form.id.data).all() with db.auto_commit(): for i in comments: db.session.delete(i) write_oplog() return ReturnObj.get_response(ReturnEnum.SUCCESS.value, "success")