def user_similar(): try: res = get_similar_users(g.user.id) return http_util.return_model(res) except BaseException as e: app.logger.error(e) return http_util.return_internal_server_error()
def update_user(): '''修改用户信息''' headers = request.headers user_id = g.user_id args = request.json try: mobile = args.get('mobile') if mobile: mobile_exists = User.query_user(mobile=mobile) if mobile_exists: return http_util.return_forbidden('手机号已经绑定其他用户') u = User.update_user_by_id(id=user_id, **args) if u: # 记录用户操作 Action.create_action( user_id=user_id, type=BaseConfig.TYPE_ACTION_UPDATE, res_id=user_id, res_type=BaseConfig.TYPE_USER, ext=args ) Search.sync_index_by_id(user_id, BaseConfig.TYPE_USER) return return_model() else: return http_util.return_internal_server_error() except BaseException as e: app.logger.error(e) return http_util.return_internal_server_error()
def list(): '''首页列表''' args = request.args type = http_util.get_param_int(args, 'type', BaseConfig.TYPE_HOME_PAGE_LIST) page = http_util.get_param_int(args, 'page', BaseConfig.DEFAULT_PAGE) per_page = http_util.get_param_int(args, 'per_page', BaseConfig.DEFAULT_PER_PAGE) paginate = HomePage.query_home_page_paginate(type=type, page=page, per_page=per_page) details = [] for item in paginate.items: detail = item.to_json() res_type = detail['res_type'] res_id = detail['res_id'] res_detail = Resource.get_resource_detail(res_id=res_id, res_type=res_type) detail['res_detail'] = res_detail details.append(detail) res = http_util.make_page_response(details, paginate.total, page, per_page) return return_model(data=res)
def open_unbinding(): '''绑定第三方用户''' user_id = get_login_user_id(request) if not user_id: return return_no_authorization() login_user = User.query_user( id=user_id, status=BaseConfig.TYPE_USER_ANONYMOUS ) if login_user: return http_util.return_forbidden('请先登录,在进行解绑') args = request.json need_keys = ['open_id'] key = check_params(args, *need_keys) if key: return return_not_found(key) open_id = args['open_id'] open_user = UserOpen.query_open_user(id=open_id) if open_user: if open_user.user_id != user_id: return http_util.return_forbidden('bound not found') else: UserOpen.update_open_user_by_id( id=open_id, user_id="" ) return http_util.return_model() else: return http_util.return_forbidden('bound not found')
def resource_delete(): """资源详情""" args = request.json key = http_util.check_params(args, 'res_id', 'res_type') if key: return http_util.return_param_not_found(key) login_user_id = http_util.get_login_user_id(request) if not login_user_id: return http_util.return_no_authorization() res_id = http_util.get_param(args, 'res_id') res_type = http_util.get_param_int(args, 'res_type') try: is_del = Resource.delete_resource(res_id, res_type) if not is_del: return http_util.return_internal_server_error("删除失败") # 记录用户行为 Action.create_action( user_id=login_user_id, type=BaseConfig.TYPE_ACTION_DELETE, res_id=res_id, res_type=res_type ) return http_util.return_model() except BaseException as e: app.logger.error(e) return http_util.return_internal_server_error()
def list(): '''文章列表''' args = request.args page = http_util.get_param_int(args, 'page', BaseConfig.DEFAULT_PAGE) per_page = http_util.get_param_int(args, 'per_page', BaseConfig.DEFAULT_PER_PAGE) paginate = Video.query_video_paginate( user_id="", is_del=0, page=page, per_page=per_page ) videos = [] for item in paginate.items: detail = item.to_json() # detail['id'] = "{}".format(detail['id']) videos.append(detail) res = http_util.make_page_response(videos, paginate.total, page, per_page) return return_model( data=res )
def user_attentions(): login_user_id = get_login_user_id(request) args = request.args key = http_util.check_params(args, 'attention_status') if key: return http_util.return_param_not_found(key) user_id = http_util.get_param(args, 'user_id') attention_status = http_util.get_param_int(args, 'attention_status') page = http_util.get_param_int(args, 'page', BaseConfig.DEFAULT_PAGE) per_page = http_util.get_param_int(args, 'per_page', BaseConfig.DEFAULT_PER_PAGE) detail_id = None if user_id: detail_id = user_id else: detail_id = login_user_id if not detail_id: return return_no_authorization() try: res = get_user_attentions( user_id=detail_id, attention_status=attention_status, page=page, per_page=per_page, login_user_id=login_user_id ) return http_util.return_model(res) except BaseException as e: app.logger.error(e) return http_util.return_internal_server_error()
def timeline(): login_user_id = get_login_user_id(request) args = request.args start = http_util.get_param_int(args, 'start', BaseConfig.MAX_START) per_page = http_util.get_param_int(args, 'per_page', BaseConfig.DEFAULT_PER_PAGE) user_id = args.get('user_id', None) detail_id = None if user_id: detail_id = user_id else: detail_id = login_user_id if not detail_id: return http_util.return_404('not found user') res = Action.query_actions( user_id=detail_id, type=BaseConfig.TYPE_ACTION_UPLOAD, ) items = [] for item in res: res_type = item.res_type res_id = item.res_id item = Resource.get_resource_detail( res_id=res_id, res_type=res_type, login_user_id=login_user_id ) if item: items.append(item) return http_util.return_model(items)
def resource_list(): '''首页列表''' args = request.args res_type = http_util.get_param_int(args, 'res_type', 7) res = Resource.get_resource_list(res_type) return return_model(data=res)
def delete(): '''删除敏感词''' args = request.form id = args.get('id', None) SensitiveWord.update_by_id(id=id, is_del=1) return return_model()
def get_article_edit_json(): '''获取文章内容''' args = request.form id = args.get('id', None) if id: Article.update_article_by_id(**args) return return_model()
def related_video(): args = request.args key = http_util.check_params(args, 'res_id') if key: return http_util.return_param_not_found(key) res_id = args.get('res_id') # TODO 需要真正的相关逻辑 res = Video.query_related_videos(res_id) return http_util.return_model(data=res)
def edit(): '''创建文章''' args = request.form id = args.get('id', None) if id: SensitiveWord.update_by_id(**args) else: SensitiveWord.create(**args) return return_model()
def sync_index(): '''刷新索引''' args = request.args type = http_util.get_param_int(args, 'type', -1) if type == -1: sync_index_all() else: sync_index_by_type(type) return return_model()
def edit(): '''创建文章''' args = request.form id = args.get('id', None) if id: audio = Audio.update_audio_by_id(**args) else: Audio.create_audio(**args) return return_model()
def edit_json(): """创建或修改首页信息""" args = request.form id = args.get('id', None) if id: res = HomePage.update_home_page_by_id(**args) print(res.to_json()) else: HomePage.create_home_page(**args) return return_model()
def home_page(type): ''' :param type: 83:首页 87:热门内容 :return: ''' args = request.args page = http_util.get_param_int(args, 'page', BaseConfig.DEFAULT_PAGE) per_page = http_util.get_param_int(args, 'per_page', BaseConfig.DEFAULT_PER_PAGE) login_user_id = g.user_id res = None if type == BaseConfig.TYPE_HOME_PAGE: # 首页列表 paginate = Resource.get_home_page_paginate( type=BaseConfig.TYPE_HOME_PAGE_LIST, page=page, per_page=per_page ) res = http_util.make_page_response(paginate.items, paginate.total, page, per_page) # 轮播图 paginate = Resource.get_home_page_paginate( type=BaseConfig.TYPE_HOME_PAGE_CAROUSEL, page=page, per_page=per_page ) carousels = paginate.items res['carousels'] = carousels # 静态地址 res['url'] = "" hp_url = HomePage.query_home_page( type=BaseConfig.TYPE_HOME_PAGE_URL ) if hp_url: res['url'] = hp_url.url # 弹窗 res['show_resource'] = Resource.get_show_resource(login_user_id) # 推荐 paginate = Resource.get_home_page_paginate( type=BaseConfig.TYPE_HOME_PAGE_RECOMMEND, page=page, per_page=per_page ) res['recommends'] = paginate.items elif type == BaseConfig.TYPE_HOME_PAGE_HOT: res = get_hot_res() if page >1: res['items'] = [] return http_util.return_model( data=res )
def create_article(): '''创建文章''' print(request.form) print(request.content_type) args = request.form key = check_params(args, 'name', 'content') if key: return http_util.return_param_not_found(key) a = Article.create_article(**args) return return_model(data={"article_id": a.id})
def delete(): '''首页列表''' args = request.form id = args.get('id', None) if id: flag = delete_user_by_id(id) if flag: return http_util.return_model() else: return http_util.return_internal_server_error() else: return http_util.return_forbidden('id not found')
def edit(): '''创建文章''' args = request.form print(args) id = args.get('id', None) if id: Video.update_video_by_id(**args) else: print('create') Video.create_video(**args) return return_model()
def get_article(article_id): '''获取文章内容''' a = Article.query_article(id=article_id) item = a.to_json() item['article_id'] = item['id'] item['create_ts'] = utils.make_timestamp_for_sql_time(item['create_ts']) del item['id'] del item['is_del'] del item['update_ts'] return return_model(data=item)
def push_msg(): args = request.form res = umeng_push.push_ios_all(alert=args['description'], custom_params=args) print(res.result) if res.ok: p = Push.create_push(**args) if p: return http_util.return_model() return http_util.return_internal_server_error()
def delete_json(): """创建或修改首页信息""" args = request.form id = args.get('id', None) hp = None if id: hp = HomePage.update_home_page_by_id(id=id, is_del=1) if hp: return http_util.return_model() else: return http_util.return_forbidden()
def create_anonymous(): '''获取匿名用户''' try: user = User.create_anonymous_user() authorization = generate_authorization(user.id) return return_model( header={"authorization": authorization} ) except BaseException as e: app.logger.error(e) return http_util.return_internal_server_error()
def comments(): '''评论列表''' args = request.args key = check_params(args, 'res_id') if key: return return_not_found(key) start = http_util.get_param_int(args, 'start', BaseConfig.MAX_START) per_page = http_util.get_param_int(args, 'per_page', BaseConfig.DEFAULT_NO_PAGINATE_PER_PAGE) res = get_comments(res_id=args['res_id'], start=start, per_page=per_page) return http_util.return_model(res)
def send_code(): '''发送验证码''' json = request.json print(json) key = check_params(json, 'mobile') if key: return return_model(message='{} not found'.format(key), status=400) mobile = json['mobile'] del_sql = 'UPDATE code SET is_del = 1 WHERE mobile = :mobile;' db.engine.execute(text(del_sql), mobile=mobile) # code = create_code_by_mobile(mobile) code = sms.send_code( mobile=mobile, templateid=BaseConfig.CODE_TEMPLATE_ID1 ) if code: return return_model() else: return return_model(status=500, message='发送失败')
def test(): '''一级页面接口''' print(request.method) print(request.content_type) # application / x - www - form - urlencoded # application / x - www - form - urlencoded return http_util.return_model( data={ 'form': request.form, 'json': request.json } )
def upload_init(): args = request.args key = http_util.check_params(args, 'video_name') if key: return http_util.return_param_not_found(key) client_ip = request.remote_addr res = video_client.upload_init(video_name=args['video_name'], client_ip=client_ip) if res: res['client_ip'] = client_ip return http_util.return_model(data=res) else: return http_util.return_internal_server_error()
def get_article_list_json(): '''获取文章内容''' args = request.args page = http_util.get_param_int(args, 'page', BaseConfig.DEFAULT_PAGE) per_page = http_util.get_param_int(args, 'per_page', BaseConfig.DEFAULT_PER_PAGE) paginate = Article.query_article_paginate(page=page, per_page=per_page) details = [] for item in paginate.items: detail = item.to_json() del detail['content'] details.append(detail) res = http_util.make_page_response(details, paginate.total, page, per_page) return return_model(data=res)
def push_list(): args = request.args page = http_util.get_param_int(args, "page", BaseConfig.DEFAULT_PAGE) per_page = http_util.get_param_int(args, "per_page", BaseConfig.DEFAULT_PER_PAGE) print(page, per_page) paginate = Push.query_paginate(page, per_page) details = [] for item in paginate.items: detail = item.to_json() details.append(detail) res = http_util.make_page_response(details, paginate.total, page, per_page) return http_util.return_model(data=res)