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()
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)