本文整理汇总了Python中room.Room.find_room_by_name方法的典型用法代码示例。如果您正苦于以下问题:Python Room.find_room_by_name方法的具体用法?Python Room.find_room_by_name怎么用?Python Room.find_room_by_name使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类room.Room
的用法示例。
在下文中一共展示了Room.find_room_by_name方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: room_create
# 需要导入模块: from room import Room [as 别名]
# 或者: from room.Room import find_room_by_name [as 别名]
def room_create(sock, data):
user = User.find_user_by_sock(sock)
target_name = data['details']['new_user']
echo = None
if "echo" in data:
echo = data['echo']
target_resource = user.resource
target_online = User.find_user_by_name(target_name, user.resource) # sock de outro usuario conectado
target_offline = None
if not target_online:
api_mongo.insert_user(target_name, target_resource)
target_offline = target_name
if user == target_online:
info = {"type": "chat", "payload": {"command": "error", "details": "choose_another_less_you"}}
send(user, info)
else:
second_user = None
if target_online:
second_user = target_online.username
if not second_user:
second_user = target_offline
if second_user:
if not Room.check_exist_room([user.username, second_user], user.resource): # se sala nao existe
user_temp = []
for username in [user.username, second_user]:
user_temp.append({"username": username, "seen": None, "received": None})
room_name = Room.open(user_temp, target_resource) # cria a sala e recebe nome unico a sala
new_room = Room.find_room_by_name(room_name) # sock para o nova sala criada
new_room.users_name = user_temp # insert two news name users
new_room.alias = 'DEFAULT' # insert alias
alias = new_room.alias
api_mongo.insert_room(user_temp, room_name, alias, target_resource, False, None)
info = {"type": "chat", "payload": {"command": "room_id",
"alias": new_room.alias,
"room_id": room_name,
"users": user_temp,
"echo": echo,
"is_group": False}}
send(user, info)
else: # se sala ja existe
user_temp = []
for username in [user.username, second_user]:
user_temp.append({"username": username, "seen": None, "received": None})
room_to_append = Room.find_room_by_users([user.username, second_user], user.resource)
room_restore(room_to_append)
new_room = Room.find_room_by_name(room_to_append) # sock para o nova sala criada
info = {"type": "chat", "payload": {"command": "room_id",
"alias": new_room.alias,
"room_id": room_to_append,
"users": user_temp,
"is_group": new_room.is_group}}
send(user, info)
示例2: monitor
# 需要导入模块: from room import Room [as 别名]
# 或者: from room.Room import find_room_by_name [as 别名]
def monitor(sock, data):
u = User.find_user_by_sock(sock)
print 'command from:', u.username
command = data['command']
room_name = data['destination']
if command == 'users':
li = []
for el in User.users:
if el.username:
li.append([el.username, el.network])
print 'Number users on:', len(li), '---', len(User.users)
for el in li:
print el
if command == 'rooms':
r = Room.find_room_by_name(room_name)
try:
print 'room alias:', r.alias
print 'room users_name:', adapter(r.users_name)
except:
print 'no room'
if command == 'message':
u = User.find_user_by_name('[email protected]', 'dev-socialbase')
info = {"type": "chat", "payload": {"command": "test_user",
"details": str(u)}}
u.connection.write_message(info)
print 'B.sended to ', u.username, info
示例3: reconnect_rooms
# 需要导入模块: from room import Room [as 别名]
# 或者: from room.Room import find_room_by_name [as 别名]
def reconnect_rooms(sock, user):
li = room_list_by_user(sock=None, data={'sender': user}, call=False)
for el in li:
r = Room.find_room_by_name(el['room'])
for u in adapter(r.users_name):
if u == user:
s = User.find_user_by_sock(sock)
s.connection = sock
示例4: room_rename
# 需要导入模块: from room import Room [as 别名]
# 或者: from room.Room import find_room_by_name [as 别名]
def room_rename(sock, data=None):
u = User.find_user_by_sock(sock)
r = Room.find_room_by_name(data['destination'])
r.alias = data['room_rename']
api_mongo.rename_room(data['destination'], data['room_rename'])
list_user = Room.find_users_by_room(data['destination'])
info = {"type": "chat",
"payload": {"command": "room_rename",
"room_id": data['destination'],
"alias": data['room_rename']}}
send_broadcast(list_user, info, u.resource)
示例5: room_history
# 需要导入模块: from room import Room [as 别名]
# 或者: from room.Room import find_room_by_name [as 别名]
def room_history(sock=None, data=None):
r = Room.find_room_by_name(data['destination'])
since = 0
if 'since' in data:
since = data['since']
h = r.history_read(since)
h2 = json.loads(h)
if sock:
info = {"type": "chat", "payload": {"command": "room_history", "details": h2}}
user_login = User.find_user_by_sock(sock)
send(user_login, json.dumps(info))
示例6: user_remove
# 需要导入模块: from room import Room [as 别名]
# 或者: from room.Room import find_room_by_name [as 别名]
def user_remove(sock, data):
# logging.info(' room_leave data{}:\n %r', data)
users_to_remove = data['user_remove']
if type(users_to_remove) is unicode:
users_to_remove = [data['user_remove']]
u = User.find_user_by_sock(sock)
users_remove = data['user_remove']
if type(users_remove) is unicode:
users_remove = [data['user_remove']]
print("USERS REMOVE ", users_remove)
destination = data['destination'] # id de sala a ser alterada
room_users = Room.find_users_by_room(destination) # Lista de usuarios em uma sala
print("ROOOMS USERS", room_users)
for el in users_remove: # envia mensagem dos novos nomes
send_system_info(sock, destination, 'USER REMOVE', el) # envia message para grupo da saida do user
u_list = [] # lista final
for el in room_users:
if not (el in users_remove):
u_list.append(el)
new_room = Room.find_room_by_name(destination) # sock para o nova sala alterada
new_room.users_name = [{"username": _u, "seen": None, "received": None} for _u in u_list]
current_user = User.find_user_by_sock(sock)
for uremove in users_to_remove:
api_mongo.remove_user_room(destination, uremove)
u = User.find_user_by_name(uremove, u.resource)
if u:
info = {"type": "chat", "payload": {"command": "user_remove",
"room_id": destination}}
send(u, info)
示例7: room_message
# 需要导入模块: from room import Room [as 别名]
# 或者: from room.Room import find_room_by_name [as 别名]
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)
示例8: room_reopen
# 需要导入模块: from room import Room [as 别名]
# 或者: from room.Room import find_room_by_name [as 别名]
def room_reopen(sock, data):
user = User.find_user_by_sock(sock)
destination = data['room_id']
room_sock = Room.find_room_by_name(destination) # objeto da sala com esse alias
if room_sock:
if any(d['username'] == user.username for d in room_sock.users_name):
if user.resource == room_sock.resource:
room_restore(room_sock.room_id) # coloca na memoria a sala encontrada
info = {"type": "chat", "payload": {"command": "room_id",
"room_id": room_sock.room_id,
"alias": room_sock.alias,
"is_group": room_sock.is_group}}
if 'origin' in data: # para abrir a janela de chat de maneiras diferentes
info = {"type": "chat", "payload": {"command": "room_id",
"room_id": room_sock.room_id,
"alias": room_sock.alias,
"origin": data['origin'],
"is_group": room_sock.is_group}}
send(user, info)
示例9: room_user_add
# 需要导入模块: from room import Room [as 别名]
# 或者: from room.Room import find_room_by_name [as 别名]
def room_user_add(sock, data):
u = User.find_user_by_sock(sock)
new_users_name = data['details']['new_user']
if type(new_users_name) is unicode:
new_users_name = [data['new_user']]
echo = None
if "echo" in data:
echo = data['echo']
origin = data['details']['destination']
room_users = Room.find_users_by_room(origin) # Lista de usuarios em uma sala
u_list = []
for el in new_users_name:
if not (el in room_users):
u_list.append(el)
if room_users:
for el in room_users:
u_list.append(el)
destination = Room.check_exist_room(u_list, u.resource)
if not destination:
room_name = Room.open([], u.resource) # cria a sala e recebe nome unico a sala
new_room = Room.find_room_by_name(room_name) # sock para o nova sala criada
destination = new_room.room_id
new_room.is_group = True
new_room.last_message = time.time()
new_room.alias = 'DEFAULT' # todo - validar nome default
# for unew in u_list: # todo validar se os usuarios estao off-line
# if unew != User.find_user_by_name(unew, u.resource)['username']:
# api_mongo.insert_user(unew, u.resource)
obj_users = [{"username": i, "seen": None, "received": None} for i in u_list]
api_mongo.insert_room(obj_users, room_name, new_room.alias, u.resource, True, new_room.last_message)
if destination:
room_restore(destination)
new_room = Room.find_room_by_name(destination) # sock para o nova sala criada
[send_system_info(sock, destination, 'USER ADD', el) for el in new_users_name] # envia message para grupo da entrada do user
new_room.users_name = []
obj_users = [{"username": i, "seen": None, "received": None} for i in u_list]
new_room.users_name = obj_users
new_room.is_group = True
new_room.last_message = time.time()
info = {
"type": "chat",
"payload": {
"command": "room_id",
"alias": new_room.alias,
"room_id": new_room.room_id,
"is_group": True,
"users": obj_users,
"echo": echo,
"last_message": new_room.last_message
}
}
send_broadcast(room_users, info, u.resource)