コード例 #1
0
ファイル: views.py プロジェクト: hansteve/hopapapa
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
    )
コード例 #2
0
ファイル: views.py プロジェクト: hansteve/hopapapa
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)
コード例 #3
0
ファイル: views.py プロジェクト: hansteve/hopapapa
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
    )
コード例 #4
0
ファイル: views.py プロジェクト: hansteve/hopapapa
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)
コード例 #5
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)
コード例 #6
0
ファイル: views.py プロジェクト: hansteve/hopapapa
def near():
    '''附近坐标'''
    login_user_id = http_util.get_login_user_id(request)
    if not login_user_id:
        return http_util.return_no_authorization()
    args = request.args
    page_size = http_util.get_param_int(args, 'per_page', 50)
    key = http_util.check_params(args, 'radius', 'lat', 'lng')
    if key:
        return http_util.return_param_not_found(key)

    lat = http_util.get_param(args, 'lat')
    lng = http_util.get_param(args, 'lng')
    radius = http_util.get_param_int(args, 'radius', 1000)
    items, total = search_near(
        geo_id=env_config.GEOTABLE_ID,
        lat=lat,
        lng=lng,
        radius=radius,
        page_size=50
    )

    users = []
    for item in items:
        user_id = item['user_id']
        location = item['location']
        lat = location[1]
        lng = location[0]
        user = get_user_detail(id=user_id)

        if not user:
            continue
        user['ext']['lat'] = lat
        user['ext']['lng'] = lng
        if login_user_id != user_id:
            users.append(user)

    res = http_util.make_page_response(users, total, 1, page_size)

    return http_util.return_model(
        data=res
    )
コード例 #7
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 = SensitiveWord.query_paginate(page=page, per_page=per_page)

    items = []
    for item in paginate.items:
        detail = item.to_json()
        # detail['id'] = "{}".format(detail['id'])
        items.append(detail)

    res = http_util.make_page_response(items, paginate.total, page, per_page)

    return return_model(data=res)
コード例 #8
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 = Audio.query_audio_paginate(page=page,
                                          per_page=per_page,
                                          is_del=0)

    videos = []
    for item in paginate.items:
        detail = item.to_json()
        videos.append(detail)

    res = http_util.make_page_response(videos, paginate.total, page, per_page)

    return return_model(data=res)
コード例 #9
0
def get_user_attentions(user_id,
                        attention_status,
                        page,
                        per_page,
                        params=None):
    """获取用户关注或者被关注列表"""
    paginate = None
    users = []
    total = 0
    login_user_id = params.get('login_user_id')
    if attention_status == BaseConfig.TYPE_ATTENTION_STATUS_LIST:
        paginate = UserAttention.query_user_attention_paginate(
            user_id=user_id, page=page, per_page=per_page)

        if paginate:
            items = paginate.items
            for item in items:
                user_detail = get_user_detail(id=item.to_user_id,
                                              login_user_id=login_user_id,
                                              source_include=['view_count'])
                users.append(user_detail)

            total = paginate.total

    elif attention_status == BaseConfig.TYPE_ATTENTION_STATUS_BY_LIST:
        paginate = UserAttention.query_user_attention_paginate(
            to_user_id=user_id, page=page, per_page=per_page)

        if paginate:
            items = paginate.items
            for item in items:
                user_detail = get_user_detail(id=item.user_id,
                                              login_user_id=login_user_id,
                                              source_include=['view_count'])
                users.append(user_detail)

            total = paginate.total

    res = http_util.make_page_response(users, total, page, per_page)

    return res
コード例 #10
0
ファイル: views.py プロジェクト: hansteve/hopapapa
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 = User.query_paginate(page=page,
                                   status=BaseConfig.TYPE_USER_NORMAL,
                                   per_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 return_model(data=res)
コード例 #11
0
ファイル: views.py プロジェクト: hansteve/hopapapa
def get_hot_res():
    recommends = HomePage.query_home_pages(
        type=BaseConfig.TYPE_HOME_PAGE_HOT,
        is_online=1
    )
    hot_res = ViewHotRes.query_items()
    print(len(recommends), len(hot_res))

    hot_res = hot_res[0:10]

    items = recommends + hot_res

    items = Resource.format_items(items)

    recommends = items[0:4]

    res = http_util.make_page_response(items[4:], len(items[4:]), 1,
                                       len(items[4:]))

    res['recommends'] = recommends

    return res
コード例 #12
0
def search():
    '''搜索'''
    args = request.args
    user_id = g.user_id
    q = args.get('q')
    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)
    q = 'name:{}'.format(q)

    doc_type = "{},{},{},{},{}".format(BaseConfig.ES_TYPE_USER,
                                       BaseConfig.ES_TYPE_ARTICLE,
                                       BaseConfig.ES_TYPE_COLLECTION,
                                       BaseConfig.ES_TYPE_VIDEO,
                                       BaseConfig.ES_TYPE_AUDIO)

    res, total = es.search(index=BaseConfig.ES_INDEX,
                           doc_type=doc_type,
                           q=q,
                           sort='{}:desc'.format(BaseConfig.ES_PARAMS_WEIGHT),
                           _source_include=[
                               'res_id', 'res_type', 'name', 'portrait',
                               'poster', 'posters', 'age'
                           ])

    for item in res:
        res_type = item['res_type']
        res_id = item['res_id']
        if res_type == BaseConfig.TYPE_USER:
            item['attention_status'] = get_user_attention_status(
                user_id, res_id)

    res = http_util.make_page_response(res, total, page, per_page)

    if not res['items']:
        res['recommends'] = Resource.get_hot_items()

    return http_util.return_model(res)
コード例 #13
0
def search_key():
    '''搜索'''
    args = request.args
    q = args.get('q')
    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)
    q = 'name:{}'.format(q)

    doc_type = "{},{},{},{},{}".format(BaseConfig.ES_TYPE_USER,
                                       BaseConfig.ES_TYPE_ARTICLE,
                                       BaseConfig.ES_TYPE_COLLECTION,
                                       BaseConfig.ES_TYPE_VIDEO,
                                       BaseConfig.ES_TYPE_AUDIO)

    res, total = es.search(index=BaseConfig.ES_INDEX,
                           doc_type=doc_type,
                           q=q,
                           sort='{}:desc'.format(BaseConfig.ES_PARAMS_WEIGHT),
                           _source_include=['name'])

    res = http_util.make_page_response(res, total, page, per_page)

    return http_util.return_model(res)