docs: def whois(self, nick):
          """
          Runs a WHOIS on someone.
          Required arguments:
          * nick - Nick to whois.
          Returns a dictionary:
              IDENT == The user's ident.
              HOST == The user's host.
              NAME == The user's real name.
              SERVER == The server the user is on.
              SERVER_INFO == The name of the server the user is on.
              CHANNELS == A list of channels the user is on.
              IDLE == The user's idle time.
              AWAY, present if the user is away,
                  returns a string containing their away message.
              OP == Present if the user is an IRC operator.
              ETC == Other data sent in response to the WHOIS query.
          """
          with self.lock:
              self.send('WHOIS %s' % nick)
              whois_r = {'CHANNELS': []}
  
              while self.readable():
                  msg = self._recv()
                  info = msg[2].split(None, 4)
                  if msg[0] == '311':
                      whois_r['IDENT'] = info[1]
                      whois_r['HOST'] = info[2]
                      whois_r['NAME'] = info[4][1:]
                  elif msg[0] == '312':
                      whois_r['SERVER'] = info[1]
                      whois_r['SERVER_INFO'] = ' '.join(info[2:])[1:]
                  elif msg[0] == '319':
                      whois_r['CHANNELS'].append(' '.join(info[1:])[1:].split())
                  elif msg[0] == '317':
                      whois_r['IDLE'] = info[2]
                  elif msg[0] == '301':
                      whois_r['AWAY'] = info[1][1:]
                  elif msg[0] == '313':
                      whois_r['OP'] = ' '.join(info[1:])[1:]
                  elif msg[0] == '318':
                      break
                  else:
                      if 'ETC' in whois_r:
                          whois_r['ETC'].append(msg[2])
                      else:
                          whois_r['ETC'] = [msg[2]]
  
              return whois_r