From ee293876d90cfa6ba180fe3dbceaa784a8859861 Mon Sep 17 00:00:00 2001 From: El Laggron Date: Tue, 22 Oct 2019 04:46:56 +0200 Subject: [PATCH] [RPC] Set custom port with flags (#2429) * [RPC] Set custom port with flags * Add changelog entry --- changelog.d/2429.enhance.rst | 1 + redbot/core/bot.py | 1 + redbot/core/cli.py | 6 ++++++ redbot/core/events.py | 2 +- redbot/core/rpc.py | 6 +++--- 5 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 changelog.d/2429.enhance.rst diff --git a/changelog.d/2429.enhance.rst b/changelog.d/2429.enhance.rst new file mode 100644 index 000000000..ebf9e3552 --- /dev/null +++ b/changelog.d/2429.enhance.rst @@ -0,0 +1 @@ +Add the option to modify the RPC port with the ``--rpc-port`` flag. \ No newline at end of file diff --git a/redbot/core/bot.py b/redbot/core/bot.py index 36f2d4047..acdffc957 100644 --- a/redbot/core/bot.py +++ b/redbot/core/bot.py @@ -45,6 +45,7 @@ class RedBase(commands.GroupMixin, commands.bot.BotBase, RPCMixin): # pylint: d self._config = Config.get_core_conf(force_registration=False) self._co_owners = cli_flags.co_owner self.rpc_enabled = cli_flags.rpc + self.rpc_port = cli_flags.rpc_port self._last_exception = None self._config.register_global( token=None, diff --git a/redbot/core/cli.py b/redbot/core/cli.py index 7320a640e..539c5b9d3 100644 --- a/redbot/core/cli.py +++ b/redbot/core/cli.py @@ -117,6 +117,12 @@ def parse_cli_flags(args): action="store_true", help="Enables the built-in RPC server. Please read the docs prior to enabling this!", ) + parser.add_argument( + "--rpc-port", + type=int, + default=6133, + help="The port of the built-in RPC server to use. Default to 6133.", + ) parser.add_argument("--token", type=str, help="Run Red with the given token.") parser.add_argument( "--no-instance", diff --git a/redbot/core/events.py b/redbot/core/events.py index 9bd6699a2..050ae4aa9 100644 --- a/redbot/core/events.py +++ b/redbot/core/events.py @@ -79,7 +79,7 @@ def init_events(bot, cli_flags): print("Loaded packages: " + ", ".join(packages)) if bot.rpc_enabled: - await bot.rpc.initialize() + await bot.rpc.initialize(bot.rpc_port) guilds = len(bot.guilds) users = len(set([m for m in bot.get_all_members()])) diff --git a/redbot/core/rpc.py b/redbot/core/rpc.py index 4be71a09c..658412876 100644 --- a/redbot/core/rpc.py +++ b/redbot/core/rpc.py @@ -69,15 +69,15 @@ class RPC: self._runner = web.AppRunner(self.app) self._site: Optional[web.TCPSite] = None - async def initialize(self): + async def initialize(self, port: int): """ Finalizes the initialization of the RPC server and allows it to begin accepting queries. """ await self._runner.setup() - self._site = web.TCPSite(self._runner, host="127.0.0.1", port=6133) + self._site = web.TCPSite(self._runner, host="127.0.0.1", port=port) await self._site.start() - log.debug("Created RPC server listener.") + log.debug("Created RPC server listener on port %s", port) async def close(self): """