aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bot/bot.py22
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)