示例#1
0
def on_message(data):
    """Broadcast messages"""
    rooms = get_room(data["room"])
    if rooms:
        users_rooms = get_room_members(rooms.room_name)
        if users_rooms:
            for members in users_rooms:
                msg = data["msg"]
                if members.member_name == current_user.username:
                    room = rooms.room_name
                    now = datetime.now()
                    time_stamp = now.strftime("%H:%M:%S")
                    message = save_messages(current_user.username, room, msg,
                                            time_stamp)
                    if message:
                        print("message saved")
                        print(time_stamp)
                        send(
                            {
                                "username": current_user.username,
                                "msg": msg,
                                "time": time_stamp
                            },
                            room=room)
                    else:
                        print("Something went wrong")
    else:
        return "message not sent"
示例#2
0
def add_members():
    if request.method == 'POST':
        room_name = request.form['room_name']
        usernames1 = request.form['usernames']
        if get_room(room_name) and is_room_admin_1(room_name,
                                                   current_user.username):
            if get_test_user(usernames1):

                if is_room_member(usernames1, room_name) is None:
                    if usernames1 == current_user.username:
                        add_room_member(room_name,
                                        usernames1,
                                        current_user.username,
                                        is_room_admin=True)
                        return redirect(url_for('get_rooms'))
                    else:
                        add_room_member(room_name,
                                        usernames1,
                                        current_user.username,
                                        is_room_admin=False)
                        return redirect(url_for('get_rooms'))
                else:
                    flash(f"{usernames1} already in a room", "warning")
            else:
                flash(
                    f"{usernames1} is not a registered member..Register first",
                    "danger")
        else:
            flash("failed to add members", "danger")
    return render_template('add_room_member.html')
示例#3
0
def view_room(room_name):
    room = get_room(room_name)
    if room and is_room_member(current_user.username, room_name):
        messages = get_messages(room_name)
        room_members = get_room_members(room_name)
        return render_template('_view_room.html',
                               room=room,
                               room_members=room_members,
                               messages=messages)

    else:
        flash(
            f"You are not a member of this group {room_name} please go back ",
            "warning")
        return render_template('error.html')
示例#4
0
def create_room():
    if request.method == 'POST':
        room_name = request.form['room_name']
        if get_room(room_name):
            flash("Room already exist", "danger")
        else:
            roomid = save_rooms(room_name, current_user.username)
            add_room_member(room_name,
                            current_user.username,
                            current_user.username,
                            is_room_admin=True)
            if roomid:
                return redirect(url_for('add_members', ))

    return render_template('_create_room.html')
示例#5
0
def on_join(data):
    """User joins a room"""
    rooms = get_room(data["room"])
    if rooms:
        username = get_user(data["username"])
        room = rooms.room_name
        join_room(room)
        # Broadcast that new user has joined
        now = datetime.now()
        time_stamp = now.strftime("%H:%M:%S")
        send(
            {
                "username": current_user.username,
                "msg": "has came to online",
                "time": time_stamp
            },
            room=room)
        print('message got sent')
示例#6
0
def update_room_names(room_name):
    rooms = get_room(room_name)
    member = get_room_members(room_name)
    if request.method == 'POST':
        new_room_name = request.form['new_room_name']
        if is_room_admin_1(room_name, session.get('username')):
            # new_members_name = request.form['new_members_name']
            if updated_room(room_name, new_room_name) and update_members_room(
                    room_name, new_room_name):
                flash("successfully updated room name and members room names",
                      "success")
                return redirect(url_for("get_rooms"))
            else:
                flash("failed to update members room name and room names",
                      "danger")
        else:
            flash("your are not a admin of this group", "warning")
    return render_template('_edit_room.html', rooms=rooms, member=member)