本文整理汇总了Python中user.User.find_user_by_sock方法的典型用法代码示例。如果您正苦于以下问题:Python User.find_user_by_sock方法的具体用法?Python User.find_user_by_sock怎么用?Python User.find_user_by_sock使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类user.User
的用法示例。
在下文中一共展示了User.find_user_by_sock方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: monitor
# 需要导入模块: from user import User [as 别名]
# 或者: from user.User import find_user_by_sock [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
示例2: login
# 需要导入模块: from user import User [as 别名]
# 或者: from user.User import find_user_by_sock [as 别名]
def login(sock, token):
user_login = User.find_user_by_sock(sock) # sock para user
# Options to set JWT decode
options = {
'verify_signature': True,
'verify_exp': True,
'verify_nbf': False,
'verify_iat': False,
'verify_aud': False,
'require_exp': False,
'require_iat': False,
'require_nbf': False
}
if float(jwt.__version__[:3]) < 1.3:
print 'ERROR - JWT MUST BE >= 1.3'
sys.exit(0)
info = False
try:
info = jwt.decode(token, 'socialbase', options=options)
except Exception, e:
text = '{"type":"authenticate","payload":{"status":"EXPIRED_CREDENTIALS","message":"authentication error"}}'
send(user_login, text)
示例3: room_create
# 需要导入模块: from user import User [as 别名]
# 或者: from user.User import find_user_by_sock [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)
示例4: reconnect_rooms
# 需要导入模块: from user import User [as 别名]
# 或者: from user.User import find_user_by_sock [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
示例5: room_rename
# 需要导入模块: from user import User [as 别名]
# 或者: from user.User import find_user_by_sock [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)
示例6: user_remove
# 需要导入模块: from user import User [as 别名]
# 或者: from user.User import find_user_by_sock [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: user_change_text
# 需要导入模块: from user import User [as 别名]
# 或者: from user.User import find_user_by_sock [as 别名]
def user_change_text(sock, data):
destination = data['destination']
tp = data["type"]
u = User.find_user_by_sock(sock)
list_user = Room.find_users_by_room(destination)
info = {"type": "chat",
"payload": {"command": "user_change_text",
"room_id": destination,
"user": u.username,
"type": tp}}
send_broadcast(list_user, info, u.resource)
示例8: room_history
# 需要导入模块: from user import User [as 别名]
# 或者: from user.User import find_user_by_sock [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))
示例9: user_list_by_room
# 需要导入模块: from user import User [as 别名]
# 或者: from user.User import find_user_by_sock [as 别名]
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()
示例10: room_list
# 需要导入模块: from user import User [as 别名]
# 或者: from user.User import find_user_by_sock [as 别名]
def room_list(sock):
user_call = User.find_user_by_sock(sock)
def make_list():
dict_list = []
for r in Room.rooms:
if r.room_id != '':
if user_call.resource == r.resource:
if user_call.username in [i['username'] for i in r.users_name]:
dict_list.append({'room_id': r.room_id, 'alias': r.alias, "last_message": r.last_message,
'users': r.users_name, 'is_group': r.is_group})
return dict_list
info = {"type": "chat", "payload": {"command": "room_list", "details": make_list()}}
send(user_call, info)
示例11: room_enter
# 需要导入模块: from user import User [as 别名]
# 或者: from user.User import find_user_by_sock [as 别名]
def room_enter(sock, data):
logging.info(' room_enter data{}: %r', data)
user = User.find_user_by_sock(sock)
alias = data['alias']
room_sock = Room.find_room_by_alias(alias) # objeto da sala com esse alias
if room_sock:
if user.username in adapter(room_sock.users_name): # verifica se esse usuario esta nessa sala
room_restore(room_sock.name) # coloca na memoria a sala encontrada
info = {"type": "chat", "payload": {"command": "room_id",
"room_id": room_sock.name,
"alias": room_sock.alias}}
for el in adapter(room_sock.users_name): # envia room_id para todos os users do room
u = User.find_user_by_name(el, user.resource)
if u:
send(u, info)
示例12: room_list_by_user
# 需要导入模块: from user import User [as 别名]
# 或者: from user.User import find_user_by_sock [as 别名]
def room_list_by_user(sock=None, data=None, call=True):
def make_list():
dict_list = []
for r in Room.rooms:
if r.users_name:
for el in adapter(r.users_name):
if el == data['sender']:
dict_list.append({'room': r.room_id, "last_message": r.last_message})
return dict_list
info = {"type": "chat", "payload": {"command": "room_list_by_user", "details": make_list()}}
if call:
user_login = User.find_user_by_sock(sock)
send(user_login, info)
return make_list()
示例13: user_status
# 需要导入模块: from user import User [as 别名]
# 或者: from user.User import find_user_by_sock [as 别名]
def user_status(sock, data):
user_login = User.find_user_by_sock(sock)
if int(data['number']) != 0:
user_login.status = int(data['number'])
api_mongo.user_status_change(user_login.username, user_login.status)
info = {"type": "chat", "payload": {"command": "user_status", "details": user_login.status}}
li = []
for el in User.users:
if el.username == user_login.username:
li.append(el.username)
send_broadcast(li, info, user_login.resource)
if int(data['number']) != 0:
contacts_online(sock)
示例14: room_message
# 需要导入模块: from user import User [as 别名]
# 或者: from user.User import find_user_by_sock [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)
示例15: room_reopen
# 需要导入模块: from user import User [as 别名]
# 或者: from user.User import find_user_by_sock [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)