Example #1
0
def pages_search(rd, user):
    rd.page = int(request.values['page'] if 'page' in request.values else 1)
    if rd.page < 1:
        rd.reason = 'page must be greater than or equals to 1'
        return 'content_videolist_failed.html'
    rd.page_size = int(request.values['page_size'] if 'page_size' in
                       request.values else 20)
    if rd.page_size > DisplayConfig.MAX_ITEM_PER_PAGE:
        rd.reason = 'Page size too large(max %d videos per page)' % DisplayConfig.MAX_ITEM_PER_PAGE
        return 'content_videolist_failed.html'
    if rd.page_size < 1:
        rd.reason = 'Page size must be greater than or equals to 1'
        return 'content_videolist_failed.html'
    rd.order = (request.values['order']
                if 'order' in request.values else 'latest')
    if not rd.order in ['latest', 'oldest', 'video_latest', 'video_oldest']:
        rd.reason = 'order must be one of latest,oldest,video_latest,video_oldest'
        return 'content_videolist_failed.html'

    rd.query = request.values['query'] if 'query' in request.values else ""
    rd.hide_placeholder = (int(request.values['hide_placeholder']) != 0
                           ) if 'hide_placeholder' in request.values else True
    #return 'content_videolist.html'
    if rd.query:
        if len(rd.query) > QueryConfig.MAX_QUERY_LENGTH:
            rd.reason = 'Query too long(max %d characters)' % QueryConfig.MAX_QUERY_LENGTH
            return 'content_videolist_failed.html'
        try:
            videos, related_tags, video_count = listVideoQuery(
                user,
                rd.query,
                rd.page - 1,
                rd.page_size,
                rd.order,
                hide_placeholder=rd.hide_placeholder)
        except UserError as ue:
            if ue.msg == 'INCORRECT_QUERY':
                rd.reason = "Syntax error in query"
                return 'content_videolist_failed.html'
            elif ue.msg == 'FAILED_NOT_OP':
                rd.reason = "NOT operator can only be applied to tags"
                return 'content_videolist_failed.html'
            elif ue.msg == 'FAILED_UNKNOWN':
                rd.reason = "Unknown error"
                return 'content_videolist_failed.html'
        rd.videos = videos
    else:
        videos, related_tags = listVideo(rd.page - 1, rd.page_size, rd.order)
        video_count = videos.count()
        rd.videos = [item for item in videos]

    rd.count = video_count
    tag_category_map = getTagCategoryMap(related_tags)
    tag_color_map = getTagColor(related_tags, tag_category_map)
    rd.tags_list = tag_color_map
    rd.title = 'Search'
    rd.page_count = (video_count - 1) // rd.page_size + 1
    rd.page_selector_text = buildPageSelector(
        rd.page, rd.page_count, lambda a: 'javascript:gotoPage(%d);' % a)
    return 'content_videolist.html'
Example #2
0
def ajax_listvideo_do(rd, data, user):
    order = getDefaultJSON(data, 'order', 'latest')
    additional_constraint = getDefaultJSON(data, 'additional_constraint', '')
    hide_placeholder = getDefaultJSON(data, 'hide_placeholder', True)
    lang = getDefaultJSON(data, 'lang', 'CHS')
    if order not in ['latest', 'oldest', 'video_latest', 'video_oldest']:
        raise AttributeError()
    videos, video_count, related_tags, related_tags_popularity = listVideo(
        data.page - 1,
        data.page_size,
        user,
        order,
        hide_placeholder=hide_placeholder,
        user_language=lang,
        additional_constraint=additional_constraint)
    tag_category_map = getTagCategoryMap(related_tags)
    ret = makeResponseSuccess({
        "videos":
        videos,
        "count":
        video_count,
        "page_count": (video_count - 1) // data.page_size + 1,
        "tags":
        tag_category_map,
        "tag_pops":
        related_tags_popularity
    })
    return "json", ret
def ajax_listvideo_do(rd, data, user):
    order = getDefaultJSON(data, 'order', 'latest')
    hide_placeholder = getDefaultJSON(data, 'hide_placeholder', True)
    if order not in ['latest', 'oldest', 'video_latest', 'video_oldest']:
        raise AttributeError()
    videos, video_count, related_tags = listVideo(
        data.page - 1,
        data.page_size,
        user,
        order,
        hide_placeholder=hide_placeholder)
    tag_category_map = getTagCategoryMap(related_tags)
    ret = makeResponseSuccess({
        "videos":
        videos,
        "count":
        video_count,
        "page_count": (video_count - 1) // data.page_size + 1,
        "tags":
        tag_category_map
    })
    return "json", ret
Example #4
0
def _renderRegisteredIndex(rd, user):
    rd.page = int(request.values['page'] if 'page' in request.values else 1)
    if rd.page < 1:
        abort(400, 'page must be greater than or equals to 1')
    rd.page_size = int(request.values['page_size'] if 'page_size' in
                       request.values else 20)
    if rd.page_size > DisplayConfig.MAX_ITEM_PER_PAGE:
        abort(
            400, 'Page size too large(max %d videos per page)' %
            DisplayConfig.MAX_ITEM_PER_PAGE)
    if rd.page_size < 1:
        abort(400, 'Page size must be greater than or equals to 1')
    rd.order = request.values[
        'order'] if 'order' in request.values else 'latest'
    if not rd.order in ['latest', 'oldest', 'video_latest', 'video_oldest']:
        abort(400,
              'order must be one of latest,oldest,video_latest,video_oldest')
    rd.query = request.values['query'] if 'query' in request.values else ""
    rd.hide_placeholder = (int(request.values['hide_placeholder']) != 0
                           ) if 'hide_placeholder' in request.values else True
    rd.title = 'PatchyVideo'
    rd.is_hot = '热门'
    videos, video_count, tags = listVideo(rd.page - 1,
                                          rd.page_size,
                                          user,
                                          rd.order,
                                          hide_placeholder=rd.hide_placeholder)
    rd.videos = videos
    rd.count = video_count
    tag_category_map = getTagCategoryMap(tags)
    tag_color_map = getTagColor(tags, tag_category_map)
    rd.tags_list = tag_color_map
    rd.page_count = (video_count - 1) // rd.page_size + 1
    rd.page_selector_text = buildPageSelector(
        rd.page, rd.page_count, lambda a: 'javascript:gotoPage(%d);' % a)
    return 'content_videolist.html'
Example #5
0
def ajax_listvideo_do(rd, data, user):
    start = time.time()
    order = getDefaultJSON(data, 'order', 'latest')
    additional_constraint = getDefaultJSON(data, 'additional_constraint', '')
    hide_placeholder = getDefaultJSON(data, 'hide_placeholder', True)
    lang = getDefaultJSON(data, 'lang', 'CHS')
    human_readable_tag = getDefaultJSON(data, 'human_readable_tag', False)
    offset, limit = getOffsetLimitJSON(data)
    videos, video_count, related_tags, related_tags_popularity, query_obj, pop_tagid_map, exStats1, exStats2 = listVideo(
        offset,
        limit,
        user,
        order,
        hide_placeholder=hide_placeholder,
        user_language=lang,
        additional_constraint=additional_constraint,
        human_readable_tag=human_readable_tag)
    tag_category_map = getTagCategoryMap(related_tags)
    end = time.time()
    ret = makeResponseSuccess({
        "videos": videos,
        "count": video_count,
        "page_count": (video_count - 1) // limit + 1,
        "tags": tag_category_map,
        "tagid_popmap": pop_tagid_map,
        "tag_pops": related_tags_popularity,
        'time_used_ms': int((end - start) * 1000),
        "query_obj": query_obj  #,
        # "ex_stats_1": exStats1,
        # "ex_stats_2": exStats2
    })
    return "json", ret