def sendCommand(self, command, proxy=None, **params):
command = command.strip('<STR_LIT:/>')<EOL>controller = command.split('<STR_LIT:/>')[<NUM_LIT:0>]<EOL>headers = {'<STR_LIT>': self.machineIdentifier}<EOL>if controller not in self.protocolCapabilities:<EOL><INDENT>log.debug('<STR_LIT>'<EOL>'<STR_LIT>' % (self.title, controller))<EOL><DEDENT>t = time.time()<EOL>if t - self._last_call >= <NUM_LIT> and self.product in ('<STR_LIT>', '<STR_LIT>'):<EOL><INDENT>url = '<STR_LIT>' % self._nextCommandId()<EOL>if proxy:<EOL><INDENT>self._server.query(url, headers=headers)<EOL><DEDENT>else:<EOL><INDENT>self.query(url, headers=headers)<EOL><DEDENT>self._last_call = t<EOL><DEDENT>params['<STR_LIT>'] = self._nextCommandId()<EOL>key = '<STR_LIT>' % (command, utils.joinArgs(params))<EOL>proxy = self._proxyThroughServer if proxy is None else proxy<EOL>if proxy:<EOL><INDENT>return self._server.query(key, headers=headers)<EOL><DEDENT>return self.query(key, headers=headers)<EOL>
Convenience wrapper around :func:`~plexapi.client.PlexClient.query()` to more easily
            send simple commands to the client. Returns an ElementTree object containing
            the response.

            Parameters:
                command (str): Command to be sent in for format '<controller>/<command>'.
                proxy (bool): Set True to proxy this command through the PlexServer.
                **params (dict): Additional GET parameters to include with the command.

            Raises:
                :class:`plexapi.exceptions.Unsupported`: When we detect the client doesn't support this capability.