def who(self, nick): before_len = len(self.msg_buffer) self.send_raw("WHO %s" % nick) while True: self.recv_msg() current_len = len(self.msg_buffer) for i in range(0, current_len - before_len): msg = irc_message(self.msg_buffer[-1 - i]) rpl = get_rpl_alias(msg.command) if rpl == "whoreply": return self.msg_buffer[-1 - i] elif rpl == "endofwho": return "" before_len = current_len
def _handle_msg(self, msg): global ignored_rpl msg = irc_message(msg) if msg.command == "PING": if msg.trailing.isdigit(): self.pong(msg.trailing) else: self.pong() return "" elif(msg.command == "PRIVMSG") and (msg.trailing == "\x01VERSION\x01"): self.notice(msg.source.nick, "\x01VERSION %s\x01" % self._version) return "" else: rpl = get_rpl_alias(msg.command) if rpl == "nicknameinuse": self._nick += "_" self.nick(self._nick) return "" return msg