Exemplo n.º 1
0
def handle_my_custom_event(json, methods=['GET', 'POST']):
    if json.get('message') is not None:
        message = Message(text=json.get('message'), user_id=current_user.id)
        message = message.validate()
        json.update({'username': current_user.username})
        db.session.add(message)
        db.session.commit()
    print('received my event: ' + str(json))
    socketio.emit('my response', json, callback=messageReceived)
Exemplo n.º 2
0
def user_joined():
    if current_user.is_authenticated:

        socketio.emit(
            'enter chat',
            {'message': '{0} has joined'.format(current_user.username)},
            broadcast=True)

    else:
        return False
Exemplo n.º 3
0
def message_created(data):
    room_code = data['room_id']

    message = data['text']
    user = User.query.filter_by(username=data['username']).first()
    m = Message(room_id=room_code, user_id=user.id, content=data['text'])

    db.session.add(m)
    db.session.commit()

    rooms = socketio.server.rooms(request.sid)
    print(rooms, file=sys.stderr)
    socketio.emit('message_created', {
        'username': data['username'],
        'text': data['text']
    },
                  to=room_code)
Exemplo n.º 4
0
def generate_room(data):
    user = User.query.filter_by(username=data['username']).first()
    room = Room()
    room.name = data['room_name']

    user.rooms.append(room)

    db.session.commit()

    message = Message(
        user_id=user.id,
        room_id=room.id,
        content=f"{user.username} just created room <b>{room.id}</b>")

    db.session.add(message)

    db.session.commit()

    socketio.emit('room_created_sucessfully', {'room_id': room.id, \
                                                'room_name':room.name \
                                                }, to=request.sid)
Exemplo n.º 5
0
def escape_room(data):
    user = User.query.filter_by(username=data['username']).first()
    # user = User.query.filter_by(username=current_user.username).first()
    room = Room.query.filter_by(id=data['room_id']).first()
    # print(f'before: {room.users}', file=sys.stderr)
    message = None

    for u in room.users:
        print(f'{u}', file=sys.stderr)
        if u.id == user.id:
            room.users.remove(u)

            message = Message(user_id=user.id,
                              room_id=room.id,
                              content=f" just left chat.")

            db.session.add(message)

            db.session.commit()

            break
    else:
        return

    if len(room.users) <= 0:
        for m in room.messages:
            db.session.delete(m)

        db.session.delete(room)

    db.session.commit()

    print(f'after: {room.users}', file=sys.stderr)

    socketio.emit("leave_room_success", {
        'room_id': data['room_id'],
        'username': data['username'],
        'message': message.content
    },
                  room=str(data['room_id']))
Exemplo n.º 6
0
def re_messages(data):
    limit = data['limit']
    offset = data['offset']
    room_id = int(data['room_id'])

    messages = Message.query.\
        filter_by(room_id=room_id).\
        order_by(Message.time_stamp.desc()).\
        offset(offset).\
        limit(limit).\
        all()

    print(f'offset: {offset}, limit: {limit}, messages are: {messages}')

    json_data = {'concat': data['concat'], 'mes': []}

    for message in messages:
        content = message.content
        username = message.user.username
        json_data['mes'].append({'content': content, 'username': username})

    # print(json_data['mes'], file=sys.stderr)
    socketio.emit('messages_requested', json.dumps(json_data), to=request.sid)
Exemplo n.º 7
0
def enter_room(data):
    user = User.query.filter_by(username=data['username']).first()
    # user = User.query.filter_by(username=current_user.username).first()
    room = Room.query.filter_by(id=data['room_id']).first()

    if room == None:
        print(f"room not found", file=sys.stderr)
        return

    room_name = room.name
    message = None

    if room not in user.rooms:
        user.rooms.append(room)
        db.session.commit()

        message = Message(user_id=user.id,
                          room_id=room.id,
                          content=f" just joined chat.")

        db.session.add(message)

        db.session.commit()

    else:
        print(f"user's aldready in room", file=sys.stderr)

    m = ""

    if (message):
        m = message.content


    socketio.emit('enter_room_success', {'room_id': room.id, 'room_name': room_name, 'username': data['username'], \

                                        'message': m}, room=str(data['room_id']))