@@ -32,34 +32,43 @@ async def members_past(
32
32
'''
33
33
result = MembersOut ()
34
34
for team in Team .list_by_pid (pid = pid ):
35
- data = {}
36
- data ['name' ] = team ['name' ]
37
- data ['tid' ] = team ['tid' ]
35
+ if not team .chiefs :
36
+ continue
38
37
39
- data [ 'chiefs' ] = []
40
- chiefs_infos = User .get_info (uids = team [ ' chiefs' ] )
41
- for uid in team [ ' chiefs' ] :
38
+ data_chiefs : list [ MembersInfo ] = []
39
+ chiefs_infos = User .get_info (uids = team . chiefs )
40
+ for uid in team . chiefs :
42
41
if uid not in chiefs_infos :
43
42
continue
44
43
45
44
_user = chiefs_infos [uid ]
46
45
h_msg = hashlib .md5 ()
47
46
h_msg .update (_user ['oauth' ]['email' ].encode ('utf-8' ))
48
- data [ 'chiefs' ] .append (MembersInfo .parse_obj ({
47
+ data_chiefs .append (MembersInfo .parse_obj ({
49
48
'name' : _user ['profile' ]['badge_name' ],
50
49
'email_hash' : h_msg .hexdigest (),
51
50
}))
52
51
53
- data ['members' ] = []
54
- for _user in User .get_info (uids = list (set (team ['members' ]) - set (team ['chiefs' ]))).values ():
52
+ data_members : list [MembersInfo ] = []
53
+
54
+ uids = set ()
55
+ if team .members :
56
+ uids .update (team .members )
57
+ if team .chiefs :
58
+ uids .update (team .chiefs )
59
+
60
+ for _user in User .get_info (uids = list (uids )).values ():
55
61
h_msg = hashlib .md5 ()
56
62
h_msg .update (_user ['oauth' ]['email' ].encode ('utf-8' ))
57
- data [ 'members' ] .append (MembersInfo .parse_obj ({
63
+ data_members .append (MembersInfo .parse_obj ({
58
64
'name' : _user ['profile' ]['badge_name' ],
59
65
'email_hash' : h_msg .hexdigest (),
60
66
}))
61
67
62
- result .data .append (MembersTeams .parse_obj (data ))
68
+ result .data .append (MembersTeams .parse_obj (
69
+ {'name' : team .name , 'tid' : team .id ,
70
+ 'chiefs' : data_chiefs , 'members' : data_members }
71
+ ))
63
72
64
73
if result .data :
65
74
return result
@@ -82,34 +91,43 @@ async def members(
82
91
'''
83
92
result = MembersOut ()
84
93
for team in Team .list_by_pid (pid = pid ):
85
- data = {}
86
- data ['name' ] = team ['name' ]
87
- data ['tid' ] = team ['tid' ]
94
+ if not team .chiefs :
95
+ continue
88
96
89
- data [ 'chiefs' ] = []
90
- chiefs_infos = User .get_info (uids = team [ ' chiefs' ] )
91
- for uid in team [ ' chiefs' ] :
97
+ data_chiefs : list [ MembersInfo ] = []
98
+ chiefs_infos = User .get_info (uids = team . chiefs )
99
+ for uid in team . chiefs :
92
100
if uid not in chiefs_infos :
93
101
continue
94
102
95
103
user = chiefs_infos [uid ]
96
104
h_msg = hashlib .md5 ()
97
105
h_msg .update (user ['oauth' ]['email' ].encode ('utf-8' ))
98
- data [ 'chiefs' ] .append (MembersInfo .parse_obj ({
106
+ data_chiefs .append (MembersInfo .parse_obj ({
99
107
'name' : user ['profile' ]['badge_name' ],
100
108
'email_hash' : h_msg .hexdigest (),
101
109
}))
102
110
103
- data ['members' ] = []
104
- for user in User .get_info (uids = list (set (team ['members' ]) - set (team ['chiefs' ]))).values ():
111
+ data_members : list [MembersInfo ] = []
112
+
113
+ uids = set ()
114
+ if team .members :
115
+ uids .update (team .members )
116
+ if team .chiefs :
117
+ uids .update (team .chiefs )
118
+
119
+ for user in User .get_info (uids = list (uids )).values ():
105
120
h_msg = hashlib .md5 ()
106
121
h_msg .update (user ['oauth' ]['email' ].encode ('utf-8' ))
107
- data [ 'members' ] .append (MembersInfo .parse_obj ({
122
+ data_members .append (MembersInfo .parse_obj ({
108
123
'name' : user ['profile' ]['badge_name' ],
109
124
'email_hash' : h_msg .hexdigest (),
110
125
}))
111
126
112
- result .data .append (MembersTeams .parse_obj (data ))
127
+ result .data .append (MembersTeams .parse_obj (
128
+ {'name' : team .name , 'tid' : team .id ,
129
+ 'chiefs' : data_chiefs , 'members' : data_members }
130
+ ))
113
131
114
132
if result .data :
115
133
return result
0 commit comments