forked from watsy0007/ChatServer
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodels.py
More file actions
148 lines (88 loc) · 2.9 KB
/
Copy pathmodels.py
File metadata and controls
148 lines (88 loc) · 2.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#! /usr/bin/env python
#coding=utf-8
__author__ = 'watsy'
from db import DBEngine , DBUser
USERS_PAGES_SIZE = 20
class UserObject(object):
def __init__(self , connection , dbuser):
#为了加快性能处理,这里采用字典
#关键字用用户唯一的用户名
self.friends = {}
self.connection = connection
self.DBUser = dbuser
#是否在线
self.online = False
def addFriend(self, user):
self.friends[user.DBUser.username] = user
def deleteFriend(self, user):
if self.friends.has_key(user.DBUser.username):
del self.friends[user.DBUser.username]
def getAllFriends(self):
return self.friends.values()
def getFriendWithUsername(self , username):
if self.friends.has_key(username):
return self.friends[username]
return None
def getFriendWithId(self, friendId):
for friend in self.friends.itervalues():
if friend.DBUser.uid == friendId:
return friend
return None
class UserModel(object):
def __init__(self):
#为了加快性能处理,这里采用字典
#关键字用用户唯一的用户名
self.users = {}
def addNewOnlineUser(self, user):
"""
新增用户
"""
self.users[user.DBUser.username] = user
def deleteUserBecauseOffline(self, user):
"""
用户下线以后,从在线中删除
"""
del self.users[user.DBUser.username]
def getUserByConnection(self, connection):
"""
根据连接获取用户信息
"""
for user in self.users.itervalues():
if user.connection == connection:
return user
return None
def getUserExistByUserid(self, userid):
"""
根据用户id判断用户是否在线,并返回
"""
for user in self.users.itervalues():
if user.DBUser.uid == userid:
return user
return None
def getUserExistByUsername(self, username):
"""
根据用户名称判断用户是否在线,并返回,确保用户登录的唯一
"""
if self.users.has_key(username):
return self.users[username]
return None
def deleteUserByUser(self, user):
"""
根据好友,从用户列表中删除
"""
if self.users.has_key(user.DBUser.username):
del self.users[user.DBUser.username]
def deleteUserByConnection(self, connection):
"""
根据connection删除好友
"""
for user in self.users.itervalues():
if user.connection == connection:
self.deleteUserByUser(user)
break
def reset(self):
"""
服务器重置
"""
del self.users
self.users = {}