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'
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
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'
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