mirror of
https://github.com/yawaflua/Flask-Discord.git
synced 2026-02-04 10:14:15 +02:00
🔧 Fix unclosed OAuth2Session objects. Make use of the _make_session context manager.
This commit is contained in:
@@ -64,7 +64,7 @@ class DiscordOAuth2HttpClient(abc.ABC):
|
||||
raise NotImplementedError
|
||||
|
||||
async def _fetch_token(self, state):
|
||||
discord = await self._make_session(state=state)
|
||||
async with await self._make_session(state=state) as discord:
|
||||
return await discord.fetch_token(
|
||||
configs.DISCORD_TOKEN_URL,
|
||||
client_secret=self.__client_secret,
|
||||
@@ -136,10 +136,11 @@ class DiscordOAuth2HttpClient(abc.ABC):
|
||||
|
||||
"""
|
||||
route = configs.DISCORD_API_BASE_URL + route
|
||||
discord = await self._make_session()
|
||||
async with (await discord.request(
|
||||
method, route, data, **kwargs
|
||||
) if oauth else aiohttp.request(method, route, data=data, **kwargs)) as response:
|
||||
async with await self._make_session() as discord:
|
||||
async with (
|
||||
await discord.request(method, route, data, **kwargs)
|
||||
if oauth else aiohttp.request(method, route, data=data, **kwargs)
|
||||
) as response:
|
||||
|
||||
if response.status == 401:
|
||||
raise exceptions.Unauthorized
|
||||
|
||||
@@ -95,8 +95,8 @@ class DiscordOAuth2Session(_http.DiscordOAuth2HttpClient):
|
||||
|
||||
state = jwt.encode(data or dict(), current_app.config["SECRET_KEY"]).decode(encoding="utf-8")
|
||||
|
||||
discord_session = await self._make_session(scope=scope, state=state)
|
||||
authorization_url, state = discord_session.authorization_url(configs.DISCORD_AUTHORIZATION_BASE_URL)
|
||||
async with await self._make_session(scope=scope, state=state) as discord_:
|
||||
authorization_url, state = discord_.authorization_url(configs.DISCORD_AUTHORIZATION_BASE_URL)
|
||||
|
||||
self.__save_state(state)
|
||||
|
||||
@@ -174,7 +174,8 @@ class DiscordOAuth2Session(_http.DiscordOAuth2HttpClient):
|
||||
|
||||
async def authorized(self):
|
||||
"""A boolean indicating whether current session has authorization token or not."""
|
||||
return (await self._make_session()).authorized
|
||||
async with await self._make_session() as discord_:
|
||||
return discord_.authorized
|
||||
|
||||
@staticmethod
|
||||
async def fetch_user() -> models.User:
|
||||
|
||||
Reference in New Issue
Block a user