Esempio n. 1
0
def user_list_by_room(sock, data=None):  # friends
    u = User.find_user_by_sock(sock)

    def make_list():
        dict_list = []
        for r in Room.rooms:
            if r.room_id == data['destination']:
                if r.users_name:
                    for el in adapter(r.users_name):
                        if u.username != el:
                            dict_list.append(el)
                    break
        return dict_list

    if sock:
        alias = Room.find_alias_by_room(data['destination'])
        info = {"type": "chat",
                "payload": {"command": "user_list_by_room", "alias": alias, "room_id": data['destination'],
                            "details": make_list()}}

        user_login = User.find_user_by_sock(sock)
        send(user_login, info)
    return make_list()
Esempio n. 2
0
def room_message(sock, data):
    # logging.info(' room_message data{}: %r', data)
    sender = data['sender']
    destination = data['destination']
    t = time.time()
    u = User.find_user_by_sock(sock)

    if 'message' in data:
        message = data['message']
        alias = Room.find_alias_by_room(destination)
        r = Room.find_room_by_name(data['destination'])
        r.last_message = t
        target = data['target'] if 'target' in data else ''
        message_id = str(uuid.uuid4())
        Room.history_add(sender, destination, message, alias, target, message_id, t)

        info = {
            "type": "chat",
            "payload": {
                "command": "room_message",
                "dt": t,
                "message": message,
                "room_id": destination,
                "sender": sender,
                "alias": alias,
                "target": target,
                "message_id": message_id
            }
        }

        list_user = Room.find_users_by_room(destination)
        send_broadcast(list_user, info, u.resource)

        if not sender == "system_info":
            sub_list = Room.find_users_instance_by_room(destination, u.networkId)
            sub_list.remove({'networkId': u.networkId, 'username': sender})
            send_to_parse_multicast(info, sub_list)