def connect_to(self, friend_name): """ connect friend: start a chat with 'friend' """ # If chat already open, do nothing if friend_name in self.chats: return friend = self.friends.get(friend_name) if not friend: print("{0} is not a friend".format(friend_name)) elif not friend_online(friend): print("{0} is not online".format(friend.name)) else: # Set up pipes for messages and closing message_get_pipe, message_send_pipe = Pipe(False) close_get_pipe, close_send_pipe = Pipe(False) friend_address = Address(friend.ip, int(friend.port)) self.pipes[friend.name] = (message_send_pipe, close_get_pipe) # Create chat chat = Process(target=start_chat, kwargs={'host': self.host, 'remote': friend_address, 'friend': friend.name, 'name': self.name, 'state': self, 'get_pipe': message_get_pipe, 'close_pipe': close_send_pipe}) self.chats[friend.name] = chat # Open chat chat.start()
def connect_to(self, friend_name): """ connect friend: start a chat with 'friend' """ # If chat already open, do nothing if friend_name in self.chats: return friend = self.friends.get(friend_name) if not friend: print("{0} is not a friend".format(friend_name)) elif not friend_online(friend): print("{0} is not online".format(friend.name)) else: # Set up pipes for messages and closing message_get_pipe, message_send_pipe = Pipe(False) close_get_pipe, close_send_pipe = Pipe(False) friend_address = Address(friend.ip, int(friend.port)) self.pipes[friend.name] = (message_send_pipe, close_get_pipe) # Create chat chat = Process(target=start_chat, kwargs={ 'host': self.host, 'remote': friend_address, 'friend': friend.name, 'name': self.name, 'state': self, 'get_pipe': message_get_pipe, 'close_pipe': close_send_pipe }) self.chats[friend.name] = chat # Open chat chat.start()
def show_online(self): """ online: show available friends """ online_friends = [ friend for friend in self.friends.keys() if friend_online(self.friends[friend]) ] print("Online friends: ", end='') print(', '.join(online_friends))
def show_online(self): """ online: show available friends """ online_friends = [friend for friend in self.friends.keys() if friend_online(self.friends[friend])] print("Online friends: ", end='') print(', '.join(online_friends))