def ajax_lists_get_playlist_do(rd, user, data): offset, limit = getOffsetLimitJSON(data) lang = getDefaultJSON(data, 'lang', 'CHS') playlist = getPlaylist(data.pid, lang) if playlist["item"]["private"] and str( playlist["meta"]["created_by"]) != str( user['_id']) and user['access_control']['status'] != 'admin': abort(404) playlist_editable = False playlist_owner = False if user: videos, video_count, playlist_editable, playlist_owner = listPlaylistVideosWithAuthorizationInfo( data.pid, offset, limit, user) else: videos, video_count = listPlaylistVideos(data.pid, offset, limit, user) tags = playlist_db.retrive_item_with_tag_category_map( playlist['_id'], lang) return "json", makeResponseSuccess({ "editable": playlist_editable, "owner": playlist_owner, "playlist": playlist, "tags": tags, "videos": [item for item in videos], "count": video_count, "page_count": (video_count - 1) // limit + 1 })
def ajax_subs_list_do(rd, data, user): order = getDefaultJSON(data, 'order', 'video_latest') hide_placeholder = getDefaultJSON(data, 'hide_placeholder', True) lang = getDefaultJSON(data, 'lang', 'CHS') visible = getDefaultJSON(data, 'visible', ['']) additional_constraint = getDefaultJSON(data, 'additional_constraint', '') if order not in ['latest', 'oldest', 'video_latest', 'video_oldest', 'last_modified'] : raise AttributeError() offset, limit = getOffsetLimitJSON(data) videos, sub_objs, tags, tagids, count = listSubscriptedItems( user, offset, limit, lang, hide_placeholder, order, visible, additional_constraint ) return "json", makeResponseSuccess({ 'videos': videos, 'objs': sub_objs, 'related_tags': tags, 'related_tagids': tagids, 'total': count })
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
def ajax_forums_view_forum(rd, user, data): offset, limit = getOffsetLimitJSON(data) threads_pinned, threads = listForumThreads(ObjectId(data.forum_id), offset, limit) return "json", makeResponseSuccess({ 'threads': threads, 'threads_pinned': threads_pinned })
def ajax_user_list_users(rd, user, data): offset, limit = getOffsetLimitJSON(data) query = getDefaultJSON(data, 'query', '') order = getDefaultJSON(data, 'order', 'latest') users, count = listUsers(user, offset, limit, query, order) ret = makeResponseSuccess({ "users": users, "count": count, "page_count": (count - 1) // limit + 1 }) return "json", ret
def ajax_query_tags_regex(rd, user, data): order = getDefaultJSON(data, 'order', 'latest') category = getDefaultJSON(data, 'category', '') offset, limit = getOffsetLimitJSON(data) tags, tag_count = queryTagsRegex(data.query, category, offset, limit, order, user) ret = makeResponseSuccess({ "tags": tags, "count": tag_count, "page_count": (tag_count - 1) // limit + 1 }) return "json", ret
def ajax_lists_all_do(rd, user, data): offset, limit = getOffsetLimitJSON(data) order = getDefaultJSON(data, 'order', 'last_modified') playlists, playlists_count = listPlaylists(user, offset, limit, '', order, 'text', '') return "json", makeResponseSuccess({ "playlists": playlists, "count": playlists_count, "page_count": (playlists_count - 1) // limit + 1 })
def ajax_query_tags(rd, user, data): order = getDefaultJSON(data, 'order', 'latest') if order not in ['latest', 'oldest', 'count', 'count_inv']: raise AttributeError() offset, limit = getOffsetLimitJSON(data) tags = queryTags(data.category, offset, limit, order, user) tag_count = tags.count() ret = makeResponseSuccess({ "tags": [i for i in tags], "count": tag_count, "page_count": (tag_count - 1) // limit + 1 }) return "json", ret
def ajax_lists_myplaylists_vid(rd, user, data): offset, limit = getOffsetLimitJSON(data) order = getDefaultJSON(data, 'order', 'last_modified') query = getDefaultJSON(data, 'query', '') additional_constraint = getDefaultJSON(data, 'additional_constraint', '') playlists, playlists_count = listMyPlaylistsAgainstSingleVideo( user, data.vid, offset, limit, query, additional_constraint, order) return "json", makeResponseSuccess({ "playlists": playlists, "count": playlists_count, "page_count": (playlists_count - 1) // limit + 1 })
def ajax_admin_viewlogs_do(rd, data, user): filterOperation('viewlogs', user) order = getDefaultJSON(data, 'order', 'latest') date_from = getDefaultJSON(data, 'date_from', '') date_to = getDefaultJSON(data, 'date_to', '') offset, limit = getOffsetLimitJSON(data) levels = getDefaultJSON(data, 'levels', ['SEC', 'MSG', 'WARN', 'ERR']) op = getDefaultJSON(data, 'op', '') if date_from: date_from = parse(date_from).astimezone(timezone.utc) if date_to: date_to = parse(date_to).astimezone(timezone.utc) ret = viewLogs(offset, limit, date_from, date_to, order, op, levels) return "json", makeResponseSuccess(ret)
def ajax_query_tags_wildcard(rd, user, data): order = getDefaultJSON(data, 'order', 'latest') if order not in ['latest', 'oldest', 'count', 'count_inv']: raise AttributeError() category = getDefaultJSON(data, 'category', '') offset, limit = getOffsetLimitJSON(data) tags, tag_count = queryTagsWildcard(data.query, category, offset, limit, order, user) ret = makeResponseSuccess({ "tags": tags, "count": tag_count, "page_count": (tag_count - 1) // limit + 1 }) return "json", ret
def ajax_listmyvideo_do(rd, data, user): order = getDefaultJSON(data, 'order', 'latest') lang = getDefaultJSON(data, 'lang', 'CHS') offset, limit = getOffsetLimitJSON(data) videos, video_count = listMyVideo(offset, limit, user, order, user_language=lang) ret = makeResponseSuccess({ "videos": videos, "count": video_count, "tags": getCommonTagsWithCount(lang, videos), "page_count": (video_count - 1) // limit + 1, }) return "json", ret
def ajax_lists_search_do(rd, user, data): offset, limit = getOffsetLimitJSON(data) order = getDefaultJSON(data, 'order', 'last_modified') query = getDefaultJSON(data, 'query', '') additional_constraint = getDefaultJSON(data, 'additional_constraint', '') assert isinstance(query, str) playlists, playlists_count = listPlaylists(user, offset, limit, query, order, 'text', additional_constraint) return "json", makeResponseSuccess({ "playlists": playlists, "count": playlists_count, "page_count": (playlists_count - 1) // limit + 1 })
def ajax_subs_list_randomized_do(rd, data, user): lang = getDefaultJSON(data, 'lang', 'CHS') visible = getDefaultJSON(data, 'visible', ['']) offset, limit = getOffsetLimitJSON(data) additional_constraint = getDefaultJSON(data, 'additional_constraint', '') videos, sub_objs, tags, tagids = listSubscriptedItemsRandomized( user, limit, lang, visible, additional_constraint ) return "json", makeResponseSuccess({ 'videos': videos, 'objs': sub_objs, 'related_tags': tags, 'related_tagids': tagids })
def ajax_listvideo_randomized_do(rd, data, user): query = getDefaultJSON(data, 'query', '') if len(query) > QueryConfig.MAX_QUERY_LENGTH: raise UserError('QUERY_TOO_LONG') additional_constraint = getDefaultJSON(data, 'additional_constraint', '') human_readable_tag = getDefaultJSON(data, 'human_readable_tag', False) qtype = getDefaultJSON(data, 'qtype', 'tag') lang = getDefaultJSON(data, 'lang', 'CHS') _, limit = getOffsetLimitJSON(data) videos, related_tags, related_tagids = listVideoRandimzied( user, limit, query, lang, qtype, additional_constraint, human_readable_tag) tag_category_map = getTagCategoryMap(related_tags) ret = makeResponseSuccess({ "videos": videos, "tags": tag_category_map, "related_tagids": related_tagids }) return "json", ret
def ajax_queryvideo_do(rd, data, user): start = time.time() if len(data.query) > QueryConfig.MAX_QUERY_LENGTH: raise UserError('QUERY_TOO_LONG') additional_constraint = getDefaultJSON(data, 'additional_constraint', '') order = getDefaultJSON(data, 'order', 'latest') qtype = getDefaultJSON(data, 'qtype', 'tag') lang = getDefaultJSON(data, 'lang', 'CHS') human_readable_tag = getDefaultJSON(data, 'human_readable_tag', False) hide_placeholder = getDefaultJSON(data, 'hide_placeholder', True) offset, limit = getOffsetLimitJSON(data) videos, related_tags, related_tagids, video_count, query_obj, exStats1, exStats2 = listVideoQuery( user, data.query, offset, limit, order, hide_placeholder=hide_placeholder, qtype=qtype, 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, "related_tagids": related_tagids, 'time_used_ms': int((end - start) * 1000), "query_obj": query_obj #, # "ex_stats_1": exStats1, # "ex_stats_2": exStats2 }) return "json", ret
def ajax_video_raw_tag_log_do(rd, data, user): offset, limit = getOffsetLimitJSON(data) return "json", makeResponseSuccess( viewRawTagHistory(offset, limit, data.lang))
def ajax_playlist_setcover_do(rd, user, data): offset, limit = getOffsetLimitJSON(data) updatePlaylistCoverVID(data.pid, data.vid, offset, limit, user)
def ajax_playlist_deletevideo_do(rd, user, data): offset, limit = getOffsetLimitJSON(data) removeVideoFromPlaylist(data.pid, data.vid, offset, limit, user)
def ajax_playlist_movedown_do(rd, user, data): offset, limit = getOffsetLimitJSON(data) editPlaylist_MoveDown(data.pid, data.vid, offset, limit, user)
def ajax_subtitles_admin_list_pending_ocr_requests(rd, user, data): order = getDefaultJSON(data, 'order', 'oldest') offset, limit = getOffsetLimitJSON(data) result, count = listAllPendingRequest(user, order, offset, limit) return "json", makeResponseSuccess({'items': result, 'total': count})
def ajax_notes_list_all(rd, user, data): offset, limit = getOffsetLimitJSON(data) note_type = getDefaultJSON(data, 'note_type', 'all') ans, count = listMyNotificationAll(user, offset, limit, note_type) return "json", makeResponseSuccess({'notes': ans, 'count': count})