def video_manage(): username = request.args.get('username', None) projectName = request.args.get('projectName', None) page = int(request.args.get('page', 1)) - 1 select = {} data = [] videos: List[Video] = [] projects_name: List[str] = [] if username: select['owner'] = username if projectName: _projects: List[Project] = Project.objects(projectName=projectName) for project in _projects: select['belongTo'] = str(project.id) videos += Video.objects(**select) for i in range(len(videos)): projects_name.append(projectName) else: videos: List[Video] = Video.objects(**select) # print(videos) for i in range(len(videos)): projects_name.append( Project.get_project_by_id(videos[i].belongTo, deep=True).projectName) # print(videos[i].projectName) total_page = math.ceil(len(videos) / number_per_page) video_list = [] for i, video in enumerate( videos[page * number_per_page:page * number_per_page + number_per_page]): owner = username if username else User.get_user_by_id( video.owner).username video_list.append({ 'videoId': str(video.id), 'videoName': video.videoName, 'videoUrl': video.url, 'owner': owner, 'belongTo': projects_name[i], 'comment': video.comment, 'alive': video.alive, 'cover': video.cover[0] }) data = {'totalPage': total_page, 'videoList': video_list} return jsonify(build_response(data=data))
def meeting_manage(): project_name = request.args.get('projectName', None) page = int(request.args.get('page', 1)) - 1 select = {} if project_name: project = Project.objects(projectName=project_name) if not project: return jsonify(build_response(data=[])) select['belongTo'] = str(project.id) meetings: List[Meeting] = Meeting.objects(**select) total_page = math.ceil(len(meetings) / number_per_page) meeting_list = [] for meeting in meetings: belongTo = project_name if project_name else Project.get_project_by_id( meeting.belongTo).projectName meeting_list.append({ 'title': meeting.title, 'belongTo': belongTo, 'onlineNum': 0 if str(meeting.id) not in sid_manager.rooms else len( sid_manager.get_meetingRoom_by_meetingId(str( meeting.id)).member_list), 'currentVideo': '' if str(meeting.id) not in sid_manager.rooms else sid_manager.get_meetingRoom_by_meetingId(str( meeting.id)).player.video.videoName, 'alive': meeting.alive }) data = {'totalPage': total_page, 'meetingList': meeting_list} return jsonify(build_response(data=data))