Beispiel #1
0
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()
Beispiel #2
0
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()
Beispiel #3
0
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)
Beispiel #4
0
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')
Beispiel #5
0
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()
Beispiel #6
0
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
    )
Beispiel #7
0
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()
Beispiel #8
0
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)
Beispiel #9
0
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)
Beispiel #10
0
def delete():
    '''删除敏感词'''
    args = request.form
    id = args.get('id', None)

    SensitiveWord.update_by_id(id=id, is_del=1)

    return return_model()
Beispiel #11
0
def get_article_edit_json():
    '''获取文章内容'''
    args = request.form

    id = args.get('id', None)

    if id:
        Article.update_article_by_id(**args)

    return return_model()
Beispiel #12
0
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)
Beispiel #13
0
def edit():
    '''创建文章'''
    args = request.form
    id = args.get('id', None)

    if id:
        SensitiveWord.update_by_id(**args)
    else:
        SensitiveWord.create(**args)

    return return_model()
Beispiel #14
0
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()
Beispiel #15
0
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()
Beispiel #16
0
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()
Beispiel #17
0
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
    )
Beispiel #18
0
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})
Beispiel #19
0
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')
Beispiel #20
0
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()
Beispiel #21
0
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)
Beispiel #22
0
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()
Beispiel #23
0
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()
Beispiel #24
0
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()
Beispiel #25
0
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)
Beispiel #26
0
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='发送失败')
Beispiel #27
0
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
        }
    )
Beispiel #28
0
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()
Beispiel #29
0
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)
Beispiel #30
0
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)