コード例 #1
0
def create_room():
    message = ''
    rooms = get_rooms_for_user(current_user.username)
    if request.method == "POST":
        room_name = request.form.get('room_name')
        usernames = [username.strip()
                     for username in request.form.get('members').split(',')]

        if len(room_name):
            for username in usernames:
                user = check_user(username)
                if username ==  "": 
                    
                    break
                elif user ==None :
                    print("bruhh")
                    message = f"user:\"{username}\" doesn't exist"
                    return render_template('index.html', message1=message, have_rooms=True, rooms=rooms)
                    break
            room_id = save_room(room_name, current_user.username)
            if current_user.username in usernames:
                usernames.remove(current_user.username)
            add_room_members(room_id, room_name, usernames,
                             current_user.username)
            return redirect(url_for('chat_room', room_id=room_id))
        else:
            message = 'Failed to Create room'

    return render_template('index.html', message1=message, have_rooms=True, rooms=rooms)
コード例 #2
0
ファイル: flask_test.py プロジェクト: xiaoxl/langrensha
def create_room():
    message = ''
    if request.method == 'POST':
        room_name = request.form.get('room_name')
        usernames = [
            username.strip()
            for username in request.form.get('members').split(',')
        ]
        rolelist = request.form.getlist('role')
        cunmin_count = request.form.get('cunmin').strip()
        langren_count = request.form.get('langren').strip()
        cunmin = ['普通村民'] * int(cunmin_count)
        rolelist.extend(cunmin)
        langren = ['狼人'] * int(langren_count)
        rolelist.extend(langren)
        nvwu_flag = request.form['nvwu1save']
        shangjing_flag = request.form['shangjing']
        if len(room_name) and len(usernames) and len(
                rolelist) and nvwu_flag and shangjing_flag:
            room_id = save_room(room_name, current_user.username, rolelist,
                                nvwu_flag, shangjing_flag)

            if current_user.username in usernames:
                usernames.remove(current_user.username)
            add_room_members(room_id, room_name, usernames,
                             current_user.username)

            return redirect(url_for('view_room', room_id=room_id))
        else:
            message = 'Failed to create room'

    return render_template('create_room.html', message=message)
コード例 #3
0
ファイル: app.py プロジェクト: heisler98/flaskchat
def add_room():
    json_input = request.get_json(force=True)

    try:
        token = json_input['token']
        child = json_input['child']

        room_name = child['name']
        room_members = child['members']
    except:
        return Response(400, 'unable to parse request').get_json()

    usernames = [
        username.strip() for username in request.form.get('members').split(',')
    ]

    if request.method == 'POST':
        if len(room_name) and len(room_members):
            room_id = save_room(room_name, current_user.username)

            if current_user.username in usernames:
                room_members.remove(current_user.username)
            add_room_members(room_id, room_name, usernames,
                             current_user.username)

            return Response(200, 'New room created').get_json()

    return Response(500, 'Error creating new room').get_json()
コード例 #4
0
ファイル: app.py プロジェクト: panudet-24mb/2FastAPI
def edit_room(room_id):
    room = get_room(room_id)
    if room and is_room_admin(room_id, current_user.username):
        existing_room_members = [
            member["_id"]["username"] for member in get_room_members(room_id)
        ]
        room_members_str = ",".join(existing_room_members)
        message = ""
        if request.method == "POST":
            room_name = request.form.get("room_name")
            room["name"] = room_name
            update_room(room_id, room_name)

            new_members = [
                username.strip() for username in request.form.get("members").split(",")
            ]
            members_to_add = list(set(new_members) - set(existing_room_members))
            members_to_remove = list(set(existing_room_members) - set(new_members))
            if len(members_to_add):
                add_room_members(
                    room_id, room_name, members_to_add, current_user.username
                )
            if len(members_to_remove):
                remove_room_members(room_id, members_to_remove)
            message = "Room edited successfully"
            room_members_str = ",".join(new_members)
        return render_template(
            "edit_room.html",
            room=room,
            room_members_str=room_members_str,
            message=message,
        )
    else:
        return "Room not found", 404
コード例 #5
0
def create_room():

    message = ''

    if request.method == 'POST':
        room_name = request.form.get('room_name')
        usernames = [
            username.strip()
            for username in request.form.get('members').split(',')
        ]
        print(usernames)
        if len(room_name) and len(usernames):
            room_id = save_room(room_name, current_user.username)

            if current_user.username in usernames:
                usernames.remove(current_user.username)
                print(room_id)
                print(room_name)
                print(usernames)
                print(current_user.username)
                add_room_members(room_id, room_name, usernames,
                                 current_user.username)
                return redirect(url_for('view_room'), room_id=room_id)
            else:
                message = "Failed to create room"

    return render_template('create-room.html', message=message)
コード例 #6
0
def room_add_members(room_id):
    user_id = get_jwt_identity()
    json_input = request.get_json(force=True)

    current_app.logger.info('{} wants to add member(s) to {}'.format(
        user_id, room_id))

    try:
        new_members = json_input['add_members']
    except Exception as e:
        return jsonify({'Error': 'Bad input'}), 400

    try:
        target_room = get_room(room_id)
    except Exception as e:
        return jsonify({'Error': 'Room not found'}), 400

    # room_id, room_name, user_id, added_by, is_admin=False, is_owner=False

    try:
        if len(new_members) == 1:
            add_room_member(room_id, target_room.name, new_members[0], user_id)
            current_app.logger.info('Added a user to {}'.format(room_id))
        elif len(new_members) > 1:
            add_room_members(room_id, target_room.name, new_members, user_id)
            current_app.logger.info('Added {} users to {}'.format(
                len(new_members), room_id))
        else:
            return jsonify({'Error': 'Bad input'}), 400
    except Exception as e:
        return jsonify({'Error': 'Failed to add user. {}'.format(e)}), 500

    return jsonify({'Success': 'User(s) added'}), 200
コード例 #7
0
def edit_room(room_id):
    room = get_room(room_id)
    if room and is_room_admin(room_id, current_user.username):
        existing_room_members = [
            member['_id']['username'] for member in get_room_members(room_id)
        ]
        room_members_str = ",".join(existing_room_members)
        message = ''
        if request.method == 'POST':
            room_name = request.form.get('room_name')
            room['name'] = room_name
            update_room(room_id, room_name)

            new_members = [
                username.strip()
                for username in request.form.get('members').split(',')
            ]
            members_to_add = list(
                set(new_members) - set(existing_room_members))
            members_to_remove = list(
                set(existing_room_members) - set(new_members))
            if len(members_to_add):
                add_room_members(room_id, room_name, members_to_add,
                                 current_user.username)
            if len(members_to_remove):
                remove_room_members(room_id, members_to_remove)
            message = 'Room edited successfully'
            room_members_str = ",".join(new_members)
        return render_template('edit_room.html',
                               room=room,
                               room_members_str=room_members_str,
                               message=message)
    else:
        return "Room not found", 404
コード例 #8
0
def edit_room(room_id):
    room = get_room(room_id)
    if room and is_room_admin(room_id, current_user.username):
        existing_room_members = [
            member['_id']['username'] for member in get_room_members(room_id)
        ]
        room_members_str = ",".join(existing_room_members)
        message = ''
        if request.method == 'POST':
            room_name = request.form.get('room_name')
            if (len(request.form.get('room_name'))) == 0:
                message = "Room name cannot be empty"
                return render_template('edit_room.html',
                                       room=room,
                                       room_members_str=room_members_str,
                                       message=message)
            room['name'] = room_name
            update_room(room_id, room_name)
            if len(request.form.get('members')) == 0:
                message = "Edit unsuccessful"
                return render_template('edit_room.html',
                                       room=room,
                                       room_members_str=room_members_str,
                                       message=message)
            new_members = [
                username.strip()
                for username in request.form.get('members').split(',')
            ]
            members_to_add = list(
                set(new_members) - set(existing_room_members))
            members_to_remove = list(
                set(existing_room_members) - set(new_members))
            if current_user.username in members_to_remove:
                message = "Cannot remove admin from room"
                return render_template('edit_room.html',
                                       room=room,
                                       room_members_str=room_members_str,
                                       message=message)
            if len(members_to_add):
                add_room_members(room_id, room_name, members_to_add,
                                 current_user.username)
            if len(members_to_remove):
                remove_room_members(room_id, members_to_remove)
            message = 'Room edited successfully'
            room_members_str = ",".join(new_members)
            return redirect(url_for('view_room', room_id=room_id))

        return render_template('edit_room.html',
                               room=room,
                               room_members_str=room_members_str,
                               message=message)
    else:
        message = "Not the admin for this room"
        return render_template('error.html', message=message)
コード例 #9
0
def create_room():
    if request.method=='POST':
        room_name=request.form.get('room_name')
        usernames=[ username.strip() for username in request.form.get('members').split(',')]
        created_by=current_user.username
        if len(room_name) and len(usernames):
            room_id=save_room(room_name,created_by)

            if current_user.username in usernames:
                usernames.remove(current_user.username)
            add_room_members(room_id,room_name,usernames,current_user.username)
            flash('Room is created !','success')
            return redirect(url_for('view_room',room_id=room_id))
        else:
            flash('failed to create a room !','danger')
    return render_template('create_room.html')
コード例 #10
0
ファイル: app.py プロジェクト: panudet-24mb/2FastAPI
def create_room():
    message = ""
    if request.method == "POST":
        room_name = request.form.get("room_name")
        usernames = [
            username.strip() for username in request.form.get("members").split(",")
        ]

        if len(room_name) and len(usernames):
            room_id = save_room(room_name, current_user.username)
            if current_user.username in usernames:
                usernames.remove(current_user.username)
            add_room_members(room_id, room_name, usernames, current_user.username)
            return redirect(url_for("view_room", room_id=room_id))
        else:
            message = "Failed to create room"
    return render_template("create_room.html", message=message)
コード例 #11
0
ファイル: app.py プロジェクト: prajwal-creator/flask-chat-app
def create_room():
    message = 'Create your own Rooms'
    if request.method == 'POST':
        room_name = request.form.get('room_name')
        usernames = [username.strip() for username in request.form.get('members').split(',')]

        if len(room_name) and len(usernames):
            room_id = save_room(room_name, current_user.username)
            if current_user.username in usernames:
                usernames.remove(current_user.username)
            add_room_members(room_id, room_name, usernames, current_user.username)
            flash('Room created successfully', 'success')
            return redirect(url_for('view_room', room_id=room_id))
        else:
            message = "Failed to create room"
            flash('Failed to create room', 'danger')
    return render_template('create_room.html', message=message)
コード例 #12
0
ファイル: app.py プロジェクト: VedantRD/flask-chat-app
def edit_room(room_id):
    room = get_room(room_id)
    room_members = [
        member['_id']['username'] for member in get_room_members(room_id)
    ]
    print('room members are ==', room_members)
    is_room_admin = check_if_room_admin(room_id, current_user.username)

    if request.method == 'POST':

        new_room_name = request.form.get('new_room_name')
        change_room_name(room_id, new_room_name)
        room['room_name'] = new_room_name

        new_room_members = [
            username.strip()
            for username in request.form.get('members').split(',')
        ]

        members_to_add = list(set(new_room_members) - set(room_members))
        members_to_remove = list(set(room_members) - set(new_room_members))

        if members_to_add:
            add_room_members(room_id, new_room_name, members_to_add,
                             current_user.username)
        if members_to_remove:
            remove_room_members(room_id, members_to_remove)

        room_members = get_room_members(room_id)
        return render_template('view_room.html',
                               username=current_user.username,
                               room=room,
                               room_members=room_members,
                               is_room_admin=is_room_admin)

    else:
        room_members = ','.join(room_members)
        if room and is_room_member(room_id, current_user.username):
            return render_template('edit_room.html',
                                   username=current_user.username,
                                   room=room,
                                   room_members=room_members)
        else:
            return redirect(url_for('home'))
コード例 #13
0
def create_room():
    message = ''
    if request.method == 'POST':
        room_name = request.form['room_name']
        usernames = [
            username.strip() for username in request.form['members'].split(',')
        ]

        if len(room_name) and len(usernames):
            room_id = db.save_room(room_name, current_user.username)
            if current_user.username in usernames:
                usernames.remove(current_user.username)
            db.add_room_members(room_id, room_name, usernames,
                                current_user.username)
            return redirect(url_for('view-room', room_id=room_id))
        else:
            message = 'Faild to create room.'

    return render_template('create-room.html', message=message)
コード例 #14
0
ファイル: flask_app.py プロジェクト: TasminChowdhury/CodeName
def create_room():
    message = ''
    if request.method == 'POST':
        room_name = request.form.get('room_name')
        redusernames = [username.strip() for username in request.form.get('redmembers').split(',')]
        redSpy = request.form.get('redspymaster')
        blueusernames = [username.strip() for username in request.form.get('bluemembers').split(',')]
        blueSpy = request.form.get('bluespymaster')
        room_id = ''
        if blueSpy in blueusernames:
            blueusernames.remove(blueSpy)
        if redSpy in redusernames:
            redusernames.remove(redSpy)
        if len(room_name):
            if current_user.username == redSpy:
                room_id = save_room(room_name, current_user.username, 'red', True)
                add_room_member(room_id, room_name, blueSpy,redSpy,'False', 'blue', True)
            elif current_user.username == blueSpy:
                room_id = save_room(room_name, current_user.username, 'blue', True)
                add_room_member(room_id, room_name, redSpy, blueSpy,'False', 'red', True)
            else:

                if current_user.username in redusernames:
                    if not room_id:
                        room_id = save_room(room_name, current_user.username, 'red', False)
                        redusernames.remove(current_user.username)
                elif current_user.username in blueusernames:
                    if not room_id:
                        room_id = save_room(room_name, current_user.username, 'red', False)
                        blueusernames.remove(current_user.username)
                add_room_member(room_id, room_name, redSpy, current_user.username, 'False', 'red', True)
                add_room_member(room_id, room_name, blueSpy, current_user.username, 'False','blue', True)
            if len(redusernames):
                add_room_members(room_id, room_name, redusernames, current_user.username, 'red', False)
            if len(blueusernames):
                add_room_members(room_id, room_name, blueusernames, current_user.username, 'blue', False)
        else:
            message = "Failed to create room"

        return redirect(url_for('view_room', room_id=room_id,blueSpy=blueSpy,redSpy=redSpy))


    return render_template('create_room.html', message=message)
コード例 #15
0
ファイル: app.py プロジェクト: VedantRD/flask-chat-app
def create_new_room():
    create_room_message = ''
    if request.method == 'POST':
        room_name = request.form.get('room_name')
        usernames = [
            username.strip()
            for username in request.form.get('members').split(',')
        ]
        if len(room_name) and len(usernames):
            room_id = create_room(room_name, current_user.username)
            if current_user.username in usernames:
                usernames.remove(current_user.username)
            add_room_members(room_id, room_name, usernames,
                             current_user.username)
            return redirect(url_for('home'))
        else:
            create_room_message = 'Failed to create room'
    return render_template('create_room.html',
                           create_room_message=create_room_message)
コード例 #16
0
def books():
    if request.method == "POST":
        books = get_all_books()
        val = []
        for i in books:
            option = request.form[i[0] + i[1]]
            val.append(option)
        for i, book in enumerate(books):
            if (val[i] == '1'):
                print("liked", book[2])
                like(session['username'], book[2], like=1)
            elif (val[i] == '-1'):
                print("disliked", book[2])
                like(session['username'], book[2], like=-1)
            elif (val[i] == '0'):
                print("No Reaction", book[2])
                like(session['username'], book[2], like=0)

        book_id_to_new_book_id = get_book_id_to_new_book_id(get_book_ids())
        gid = get_group_id_of_new_user(
            clf, clusters, session['username'],
            get_like_dislike(session['username'], 'Like'),
            get_like_dislike(session['username'], 'DisLike'),
            book_id_to_new_book_id)
        group_new_user(session['username'], gid)
        room_id = get_id(gid)['_id']
        add_room_members(room_id, gid, [session['username']], 'system')
        room_members = get_room_members(room_id)
        messages = get_messages(room_id)
        books = get_all_books()
        return render_template('view_room.html',
                               username=session['username'],
                               room=gid,
                               room_members=room_members,
                               books=books,
                               messages=messages)
    else:
        books = get_all_books()
        return render_template('books.html', books=books)
コード例 #17
0
ファイル: app.py プロジェクト: abid1998/SChat
def edit_room(room_id):
    room = get_room(room_id)
    print(room)
    print(is_room_admin(room_id, current_user.username))
    if room and is_room_admin(room_id, current_user.username):
        existing_room_members = [
            member['_id']['username'] for member in get_room_members(room_id)
        ]

        message = ''
        if request.method == 'POST':
            room_name = request.form.get('room_name')

            update_room(room_id, room_name)
            new_members = [
                username.strip()
                for username in request.form.get('members').split(',')
            ]
            print(new_members)
            members_to_add = list(
                set(new_members) - set(existing_room_members))
            members_to_remove = list(
                set(existing_room_members) - set(new_members))
            print(members_to_remove, members_to_remove)
            if len(members_to_add):
                add_room_members(room_id, room_name, members_to_add,
                                 current_user.username)
            if len(members_to_remove):
                remove_room_members(room_id, members_to_remove)
            return redirect(url_for('home'))
        room_members_str = ",".join(existing_room_members)
        print(room_members_str)
        return render_template('edit_room.html',
                               message=message,
                               room=room,
                               room_members_str=room_members_str)

    return "Room not found", 404
コード例 #18
0
def create_room():
    message = ''
    if request.method == 'POST':
        room_name = request.form.get('room_name')
        if len(room_name) == 0:
            message = "Room Name cannot be empty"
            return render_template('create_room.html', message=message)
        if len(request.form.get('members')) == 0:
            message = "Add more members"
            return render_template('create_room.html', message=message)
        if (request.form.get('members')).find(',') != -1:
            usernames = [
                username.strip()
                for username in request.form.get('members').split(',')
            ]
        else:
            usernames = [
                username.strip()
                for username in request.form.get('members').split(' ')
            ]
        if current_user.username in usernames:
            usernames.remove(current_user.username)
            if not len(usernames):
                message = "Add more members"
                return render_template('create_room.html', message=message)
        if not len(usernames):
            message = "Add more members"
            return render_template('create_room.html', message=message)
        if len(room_name) and len(usernames):
            room_id = save_room(room_name, current_user.username)

            add_room_members(room_id, room_name, usernames,
                             current_user.username)
            return redirect(url_for('view_room', room_id=room_id))
        else:
            message = "Failed to create room"
    return render_template('create_room.html', message=message)
コード例 #19
0
def edit_room(room_id):
    room = [i for i in db.get_room(room_id)]
    if room and db.is_room_admin(room_id, current_user.username):
        existing_room_members = [
            member for member in db.get_room_members(room_id)
        ]
        existing_members = [
            str(member['_id']['username'])
            for member in existing_room_members[0]
        ]

        if request.method == 'POST':
            room_name = request.form['room_name']
            db.update_room(room_id, room_name)

            new_members = [
                username.strip()
                for username in request.form['members'].split(',')
            ]
            members_to_add = list(set(new_members) - set(existing_members))
            members_to_remove = list(set(existing_members) - set(new_members))

            if len(members_to_add):
                db.add_room_members(room_id, room_name, members_to_add,
                                    current_user.username)

            if len(members_to_remove):
                db.remove_room_members(room_id, members_to_remove)

            return redirect('/')

        room_members_str = ', '.join(existing_members)
        return render_template('edit-room.html',
                               room=room[0],
                               room_members_str=room_members_str)
    return 'Room not fould', 404
コード例 #20
0
def create_room():
    user_id = get_jwt_identity()
    json_input = request.get_json(force=True)

    try:
        name = json_input['name']
    except Exception as e:
        return jsonify({'Error': 'Issue parsing JSON.'}), 400

    room_id = save_room(name, user_id)
    add_room_member(room_id, name, user_id, user_id, True, True)

    try:
        members = json_input['members']
        if len(members) == 1:
            add_room_member(room_id, name, members[0], user_id)
        elif len(members) > 1:
            add_room_members(room_id, name, members, user_id)
    except Exception as e:
        current_app.logger.info(
            'No members passed or incorrect args {}'.format(e))
        return jsonify({'Success': '{}'.format(room_id)}), 200

    return jsonify({'Success': '{}'.format(room_id)}), 200
コード例 #21
0
def edit_room(room_id):
    room = get_room(room_id)
    admins = []
    not_admin = []
    error_msg = ''
    message = ''
    if room and is_room_admin(room_id, current_user.username):

        members = get_room_members(room_id)
        members_list = [username['_id']['username'] for username in members]
        for member in members:
            if is_room_admin(room_id, member['_id']['username']):
                admins.append(member['_id']['username'])
            else:
                not_admin.append(member['_id']['username'])
        if request.method == "POST":
            room_name = request.form.get('room_name')
            room['name'] = room_name
            update_room(room_id, room_name)
            make_admin = request.form.get('makeAdmin')
            removeAdmin = request.form.get('removeAdmin')
            add_member = request.form.get('addmember')
            rem_mem = request.form.get('remove_user')
            rem_room = request.form.get('delete_room')

            if make_admin:
                try:
                    update_admin(room_id, make_admin)
                    message = '{} is now an Admin🥳'.format(make_admin)
                except:
                    error_msg = 'Some error occured'

            if removeAdmin:
                try:
                    if len(admins) > 1:
                        remove_admin(room_id, removeAdmin)
                        message = '{} is no longer an Admin'.format(
                            removeAdmin)
                    else:
                        message = 'Atleast one admin should be present'
                except:
                    error_msg = 'Some error occured'

            if add_member:
                try:
                    user = check_user(add_member)
                    if user:
                        if add_member not in members_list:
                            add_mems = [username.strip()
                                        for username in add_member.split(',')]
                            add_room_members(room_id, room_name, add_mems,
                                             current_user.username)
                            message = '\"{}\" added successfully'.format(
                                add_member)
                        else:
                            message = "\"{}\" already in room".format(
                                add_member)
                    else:
                        message = "\"{}\" does not exist :(".format(add_member)
                except:
                    error_msg = "Some error occured"

            if rem_mem:
                is_admin = is_room_admin(room_id, rem_mem)
                try:
                    if len(members_list) > 1:
                        if is_admin and len(admins) == 1:
                            message = 'Atleast one Admin should be present '
                        else:
                            remove_room_member(room_id, rem_mem)
                            message = '{} removed successfully'.format(rem_mem)
                    else:
                        message = 'Atleast one member should be present'
                except:
                    error_msg = "Some error occured"
            if rem_room == 'Remove':
                try:
                    for member in members_list:
                        print("hi")
                        remove_room_member(room_id, member)
                    delete_room(room_id)
                    return redirect(url_for('home'))

                except:
                    error_msg = "Some error oocured"

                # return redirect(url_for('edit_room',room_id=room_id,message = message))

        return render_template('edit_room.html', not_admin=not_admin, admins=admins, room=room, members=members, error_msg=error_msg, room_id=room_id, message=message)

    else:
        return render_template('404.html', message='Only admins can Edit Room', room_id=room_id)
コード例 #22
0
ファイル: kmeans.py プロジェクト: sharonwangg/cs411-proj
def assign_room(clusters):
    for i in clusters.keys():
        room_id = save_room(i, 'system', i)
        add_room_members(room_id, i, clusters[i], 'system')