def wrapper(*args, **kwargs): if request.method == 'POST': token = request.headers.get('Authorization', None) if not token: return ReturnRequest( (BaseConfig.ERRORTOKEN, "用户Token不正确或有误", {})) if permission == 1: account = AccountAdmin.query.filter( AccountAdmin.token == token).first() elif permission == 2: account = AccountUser.query.filter( AccountUser.token == token).first() else: print('注意![Middleware]@TOKEN: 未设置可访问的用户权限') if account: print('request: ', request.json) request.json['current_account'] = account return func(request, *args, **kwargs) else: return ReturnRequest( (BaseConfig.ERRORTOKEN, "用户Token不正确或有误", {})) else: return ReturnRequest((405, '请求方法不正确', {}))
def wrapper(*args, **kwargs): if request.method == 'POST': token = GetRequestJsonData(request, 'Token', None) if not token: return ReturnRequest(ReturnCode.paramete_error, '非法请求', '') account = Account.query.filter(Account.token == token).first() if not account: return ReturnRequest(SystemCode.TokenInvalid, 'Token已失效或不正确, 请重新登录', '') if not user_group: print('注意!@UserTokenAuthPost: 未设置可访问的用户权限') return '' if account.account_group not in user_group: return ReturnRequest(ReturnCode.paramete_error, '你没有权限访问该接口', '') request.json['current_account'] = account return func(request, *args, **kwargs) # try: # except: # return ReturnRequest(ReturnCode.paramete_type_error, '请求参数格式有误', '') else: return ReturnRequest(SystemCode.ErrorRequestMethod, '请求方法不正确', '')
def auth_register(request): '''注册 Args email(str)注册邮箱 password(str)登录密码 repassword(str)重复输入一次密码 username(str)用户名已存在 Result 200 成功 {'vcode': vcode, 'email':email} 10000 账户未通过邮箱验证 请先完成验证 400 输入信息有误 用户名已存在 邮箱格式有误 邮箱已存在 两次输入不一致 503,502,504 服务器出错 ''' c, m, d = views.auth_register(request.json) return ReturnRequest(c, m, d)
def upload_file(request): """多用文件上传接口 Args: file: 文件 uploadKey: 上传的key值 Returns: ospath, 系统内的储存路径 一般不用 lodpath, 加载路径 带http路径 + /static + ospath, 一般用于上传完成后加载用 filename, 文件名 Raises: 200 ok 400 错误: 没有文件 错误: Key值不能为空 文件类型不允许 错误: 不允许使用的Key值 ReturnJson: { "code": 200, "data": { "filename": "20201012115423509.jpg", "lodpath": "http://127.0.0.1/static/head/20201012115423509.jpg", "ospath": "/head/20201012115423509.jpg" }, "msg": "ok" } """ return ReturnRequest(views.upload_file(request))
def album_list(request): '''资源列表 Args types(int) 获取的资源类型 1 = 番剧 2 = OST 3 = MMD 4 = Live2D pages(int) 分页 默认1 sfilter(int) 默认0 0正常 1全部 Result code: 状态码 msg: 消息 data: result id classification identification name cover introduce status show_index relation_bangumi_id count 总搜索结果条数 page 当前页数 pages 总页数 ''' c, m, d = views.album_list(request.json) return ReturnRequest(c, m, d)
def video_upload_or_edit(request): '''视频投稿和编辑 Args id int 视频id classification int 视频分类 1 MAD·AMV 2 MMD 3 技术宅 4 其他 10 pv content_classification int 视频内容分类 1 静止系 2 剪辑向 3 混合向 title str 标题 cover str 封面 introduce str 介绍 source_type int 来源类型 1 B站 2 A站 10 直传 original_type int 投稿类型 1 原创 2 转载 original_url str 转载地址 original_author str 原作者名称 videoloadurl str videoloadurl Result code: 状态码 msg: 消息 data: ''' c, m, d = views.video_upload_or_edit(request.json) return ReturnRequest(c, m, d)
def AddAndEdit(request): '''添加子类目或编辑子目名 有id时为编辑 无id时为添加 Param: fid 父id name 类目名 id 需要修改的类目id ReturnCode: 200 添加成功 or 编辑成功 201 子类目名不能为空 202 子类目名已存在 203 父级类目id不能为空 204 父级分类不存在 301 需要修改的类目不存在 401 添加失败 402 修改失败 ReturnJson: { "code": 200, "data": {}, "msg": "添加成功" } ''' c, m, d = views.category_add(request.json) return ReturnRequest(c, m, d)
def article_list(request): '''文章列表 Args types(int) 获取的资源类型 0 = 全部 默认 1 = 官方资讯 2 = 手办 pages(int) 分页 默认1 sfilter(int) 默认0 0正常 1全部 Result code: 状态码 msg: 消息 data: result [ id classification title cover introduce sort status show_index is_delete ] count 总搜索结果条数 page 当前页数 pages 总页数 ''' c, m, d = views.article_list(request.json) return ReturnRequest(c, m, d)
def bangumi_list(request): '''番剧列表 Args types(int) 获取的资源类型 1 = 番剧 2 = 剧场版 3 = OVA 4 = SP pages(int) 分页 默认1 sfilter(int) 默认0 0正常 1全部 Result code: 状态码 msg: 消息 data: result id id name 番剧名 setscount 剧集总数 introduce 介绍 cover 封面 upstatus 连载状态 staff staff制作信息 station_play 是否支持站内播放 openplay_time 开播时间 sort 权重 count 总搜索结果条数 page 当前页数 pages 总页数 ''' c,m,d = views.bangumi_list(request.json) return ReturnRequest(c,m,d)
def bangumi_info(request): '''获取详细番剧信息 Args id Result code: 状态码 msg: 消息 data: result id name setscount introduce cover upstatus staff station_play openplay_time sort playsource id url source_name bangumi_id sort ''' c,m,d = views.bangumi_info(request.json) return ReturnRequest(c,m,d)
def album_info(request): '''资源详细信息 Args id int 资源id Result code: 状态码 msg: 消息 data: result id classification identification name cover introduce status show_index relation_bangumi_id relation_bangumi id name cover ''' c, m, d = views.album_info(request.json) return ReturnRequest(c, m, d)
def wrapper(*args, **kwargs): if request.method == 'POST': token = request.headers.get('Token', None) auth = Auth(token, user_group) if auth.status(): request.json['current_account'] = auth.account return func(request, *args, **kwargs) else: c, m, d = auth.errormsg() return ReturnRequest(c, m, d) else: return ReturnRequest(405, '请求方法不正确', '', {})
def bangumi_add_or_edit(request): '''添加番剧或编辑 Args classification(int)类型 1 = 番剧 2 = 剧场版 3 = OVA 4 = SP openplay_time(str)开播日期 格式yyyy-MM-dd name(str)番剧名 setscount(int)总集数 introduce(str)介绍 cover(str)封面 upstatus(int)连载状态 1 = 连载中 2 = 已完结 staff(str)制作信息 station_play(int)1 = 运行 2 = 不允许 status(int)上下架状态 1 正常 2 = 下架 sort(int)权重 Result code: 状态码 200 成功 msg: 消息 data: null ''' c,m,d = views.bangumi_add_and_edit(request.json) return ReturnRequest(c,m,d)
def List(request): '''子类目列表 Param: fid 主类目id ReturnCode: 200 正常 201 父级类目id不能为空 202 父级分类不存在 ReturnJson: { "code": 0, "data": [ { "categoryid": 1, "create_time": "2020-04-29 01:28:41", "id": 1, "name": "测试修改子类目名字" } ], "msg": "OK" } ''' c, m, d = views.category_list(request.json) return ReturnRequest(c, m, d)
def AddorEdit(request): '''增加或编辑笔记 Param: id 笔记id cid 类目id content 内容 title 标题 ReturnCode: 200 正常 201 类目id不能为空 202 类目不存在 203 笔记内容不能为空 204 要修改的笔记不存在 400 添加失败 401 修改失败 ReturnJson: { "code": 200, "data": {}, "msg": "修改成功" } ''' c, m, d = views.addoredit(request.json) return ReturnRequest(c, m, d)
def Get(request): '''获取单条笔记详细 Param: id 笔记id ReturnCode: 200 正常 201 笔记id不能为空 202 笔记不存在 ReturnJson: { "code": 200, "data": { "create_time": "2020-04-29 02:27:04", "id": 1, "is_delete": false, "note_content": "修改后的内容", "note_title": "修改后的标题", "subcategoryid": 2 }, "msg": "OK" } ''' c, m, d = views.getanote(request.json) return ReturnRequest(c, m, d)
def upload_article(request): '''发表文章 Param: title 文章标题 introduce 介绍 content 内容 article_type 发布类型 1 作品 2 文章 3 项目 content_type 内容类型 cover 封面 content_type 内容类型 # article_type为1时 content_type为必填项 1 设计 2 视频 ReturnCode: 200 成功 400 标题不能为空 介绍不能为空 内容不能为空 发布类型不能为空 封面不能为空 作品类型不能为空 ReturnJson: ''' c,m,d = views.upload_article(request.json) return ReturnRequest(c,m,d)
def login(request): '''登录接口 Param: email 邮箱 password 密码 ReturnCode: 200 登录成功 400 用户不存在 邮箱或密码不正确 1000 黑名单用户 禁止登录 502 系统出错 ReturnDoc: Token userID username head group ReturnJson: ''' c, m, d = views.login(request.json) return ReturnRequest(c, m, d)
def photo_list(request): '''获取列表 Args category int 分区 1 : 原创 2 : Pixiv 3 : Cospaly sfilter int|str 内容类型 userid int 用户id pages int 分页 type int 不为空时获取未审核的 默认值0 传1 Result id upload_userid file title info category pixiv_author verify create_time ''' c, m, d = views.list(request.json) return ReturnRequest(c, m, d)
def cv_del(request): '''CV删除 Args id 要删除的cv的id Result 200 成功 ''' c,m,d = views.cv_del(request.json) return ReturnRequest(c,m,d)
def comment_report(request): '''评论举报 Args commentid Result 200 ''' c, m, d = views.comment_report(request.json) return ReturnRequest(c, m, d)
def admin_account_list(request): """获取全部管理员账户 Args: querys: 查询集 query_page: int 需要获取的页数 Returns: """ return ReturnRequest(account.admin_account_list(request.json))
def auth_logout(request): '''退出登录 Args null Result 200 ''' c, m, d = views.auth_logout(request.json) return ReturnRequest(c, m, d)
def auth_verify_register_vcode(request): '''验证注册验证码 Args code(str)验证码 Result 200 ''' c, m, d = views.auth_verify_register_vcode(request.json) return ReturnRequest(c, m, d)
def Seed_Email_Test(request): """邮件发送测试""" SeedEmail( recipients=['*****@*****.**'], email_title="测试", email_body="BODY", email_html="<h>测试</h>" ) return ReturnRequest(views.test(request.json))
def index_dynamics_data(request): '''更多文章-获取 Param: {} ReturnCode: 200 成功 ReturnJson: ''' c, m, d = views.index_dynamics_data(request.json) return ReturnRequest(c, m, d)
def list_more_article(request): '''更多文章-获取 Param: {} ReturnCode: 200 成功 ReturnJson: ''' c, m, d = views.list_more_article(request.json) return ReturnRequest(c, m, d)
def auth_logout_admin(request): '''退出登录管理员 Args null Result 200 退出成功 502 服务器出错 ''' c, m, d = views.auth_logout_admin(request.json) return ReturnRequest(c, m, d)
def cv_add(request): '''CV添加 Args people_name 人名 head 头像 Result 200 成功 ''' c,m,d = views.cv_add_or_edit(request.json) return ReturnRequest(c,m,d)
def article_edit(request): '''获取单篇文章 Param: ReturnCode: ReturnJson: ''' c,m,d = views.edit_article(request.json) return ReturnRequest(c,m,d)