diff options
| -rw-r--r-- | bot/bot.py | 22 | 
1 files changed, 11 insertions, 11 deletions
diff --git a/bot/bot.py b/bot/bot.py index 4b3b991a3..8f808272f 100644 --- a/bot/bot.py +++ b/bot/bot.py @@ -14,10 +14,18 @@ class Bot(commands.Bot):      """A subclass of `discord.ext.commands.Bot` with an aiohttp session and an API client."""      def __init__(self, *args, **kwargs): -        super().__init__(*args, **kwargs) +        # Use asyncio for DNS resolution instead of threads so threads aren't spammed. +        # Use AF_INET as its socket family to prevent HTTPS related problems both locally +        # and in production. +        self.connector = aiohttp.TCPConnector( +            resolver=aiohttp.AsyncResolver(), +            family=socket.AF_INET, +        ) + +        super().__init__(*args, connector=self.connector, **kwargs)          self.http_session: Optional[aiohttp.ClientSession] = None -        self.api_client = api.APIClient(loop=self.loop) +        self.api_client = api.APIClient(loop=self.loop, connector=self.connector)          log.addHandler(api.APILoggingHandler(self.api_client)) @@ -40,14 +48,6 @@ class Bot(commands.Bot):      async def start(self, *args, **kwargs) -> None:          """Open an aiohttp session before logging in and connecting to Discord.""" -        # Global aiohttp session for all cogs -        # - Uses asyncio for DNS resolution instead of threads, so we don't spam threads -        # - Uses AF_INET as its socket family to prevent https related problems both locally and in prod. -        self.http_session = aiohttp.ClientSession( -            connector=aiohttp.TCPConnector( -                resolver=aiohttp.AsyncResolver(), -                family=socket.AF_INET, -            ) -        ) +        self.http_session = aiohttp.ClientSession(connector=self.connector)          await super().start(*args, **kwargs)  |