def socket_listener(self, data):
if data['type'] == MessageType.login_bundle:
bundle = data['parameters']
friends = bundle['friends']
rooms = bundle['rooms']
messages = bundle['messages']
for friend in friends:
self.handle_new_contact(friend)
for room in rooms:
self.handle_new_contact(room)
for item in messages:
# [[data:bytes,sent:int]]
sent = item[1]
message = _deserialize_any(item[0])
client.util.socket_listener.digest_message(message, not sent)
self.bundle_process_done = True
self.refresh_contacts()
if data['type'] == MessageType.incoming_friend_request:
result = messagebox.askyesnocancel("????", data['parameters']['nickname'] + "?????????????(?Cancel??????)");
if result == None:
return
self.sc.send(MessageType.resolve_friend_request, [data['parameters']['id'], result])
if data['type'] == MessageType.contact_info:
self.handle_new_contact(data['parameters'])
return
if data['type'] == MessageType.add_friend_result:
if data['parameters'][0]:
messagebox.showinfo('????', '???????')
else:
messagebox.showerror('??????', data['parameters'][1])
return
if data['type'] == MessageType.friend_on_off_line:
friend_user_id = data['parameters'][1]
for i in range(0, len(self.contacts)):
if self.contacts[i]['id'] == friend_user_id and self.contacts[i]['type'] == 0:
self.contacts[i]['online'] = data['parameters'][0]
break
self.refresh_contacts()
return
评论列表
文章目录