im never using asyncio.create_task again

This commit is contained in:
cloudwithax 2023-03-09 23:15:30 -05:00
parent 9f30e90da2
commit 7b91e717ac
2 changed files with 10 additions and 8 deletions

View File

@ -5,6 +5,7 @@ import random
import re import re
import logging import logging
import aiohttp import aiohttp
import websockets
from discord import Client from discord import Client
from discord.ext import commands from discord.ext import commands
@ -79,8 +80,8 @@ class Node:
self._websocket_uri: str = f"{'wss' if self._secure else 'ws'}://{self._host}:{self._port}" self._websocket_uri: str = f"{'wss' if self._secure else 'ws'}://{self._host}:{self._port}"
self._rest_uri: str = f"{'https' if self._secure else 'http'}://{self._host}:{self._port}" self._rest_uri: str = f"{'https' if self._secure else 'http'}://{self._host}:{self._port}"
self._session: Optional[ClientSession] = session self._session: Optional[aiohttp.ClientSession] = session
self._websocket: aiohttp.ClientWebSocketResponse = None self._websocket = None
self._task: asyncio.Task = None self._task: asyncio.Task = None
self._session_id: str = None self._session_id: str = None
@ -194,9 +195,9 @@ class Node:
retry = backoff.delay() retry = backoff.delay()
await asyncio.sleep(retry) await asyncio.sleep(retry)
if not self.is_connected: if not self.is_connected:
asyncio.create_task(self.connect()) self._bot.loop.create_task(self.connect())
else: else:
asyncio.create_task(self._handle_payload(msg.json())) self._bot.loop.create_task(self._handle_payload(msg.json()))
async def _handle_payload(self, data: dict): async def _handle_payload(self, data: dict):
op = data.get("op", None) op = data.get("op", None)
@ -243,7 +244,7 @@ class Node:
async with self._session.request(method=method, url=uri, headers=self._headers, json=data or {}) as resp: async with self._session.request(method=method, url=uri, headers=self._headers, json=data or {}) as resp:
if resp.status >= 300: if resp.status >= 300:
data: dict = await resp.json() data: dict = await resp.json()
raise NodeRestException(f'Error fetching from Lavalink REST api: {resp.status} {resp.reason}: {data["message"]}') raise NodeRestException(f'Error fetching from Lavalink REST api: {resp.status} {resp.reason}: {data}')
if method == "DELETE" or resp.status == 204: if method == "DELETE" or resp.status == 204:
return await resp.json(content_type=None) return await resp.json(content_type=None)
@ -282,6 +283,7 @@ class Node:
else: else:
self._version = version[:1] self._version = version[:1]
self._websocket = await self._session.ws_connect( self._websocket = await self._session.ws_connect(
f"{self._websocket_uri}/v{self._version}/websocket", f"{self._websocket_uri}/v{self._version}/websocket",
headers=self._headers, headers=self._headers,
@ -289,7 +291,7 @@ class Node:
) )
if not self._task: if not self._task:
self._task = asyncio.create_task(self._listen()) self._task = self._bot.loop.create_task(self._listen())
self._available = True self._available = True
return self return self