docs: def list_(self):
          """ Gets a list of channels on the server. """
          with self.lock:
              self.send('LIST')
              list_ = {}
  
              while self.readable():
                  msg = self._recv(expected_replies=('322', '321', '323'))
  
                  if msg[0] == '322':
                      channel, usercount, modes, topic = msg[2].split(' ', 3)
                      modes = modes.replace(':', '', 1).replace(':', '', 1)
                      modes = modes.replace('[', '').replace( \
                                                      ']', '').replace('+', '')
                      list_[channel] = usercount, modes, topic
                  elif msg[0] == '321':
                      pass
                  elif msg[0] == '323':
                      break
  
              return list_