Exemplo n.º 1
0
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))
Exemplo n.º 2
0
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))