Непонятная ошибка RuntimeError: Event loop is closed
Сейчас создаю дискорд бота, который отправляет реквесты на сообщение с ссылкой Roblox. Я не понимаю в чем проблема, ведь все должно работать.
Использую Python 3.11.6 64bit; Прошу запомнить, что я использую aiosonic. Вот мой код:
# main.py
import asyncio, aiosonic, discord
from source.backend.requesting import *
...
@bot.event
async def on_message(ctx):
global claimable_channels
if ctx.channel.id in claimable_channels:
if "roblox.com/" in ctx.content:
id = ctx.content.split("/")[4]
await claim_group(headers, id)
async def main() -> None:
global session, user_id, headers, user_data
headers = await get_headers(session, cookie)
user_data = await get_user_data(session, headers)
user_id = user_data["id"]
await generate_logo("Elite")
await send_webhook("hey, i'm running on user: " + str(user_id))
asyncio.run(main())
bot.run("вот да")
# requesting.py
import aiosonic, asyncio, time
from aiosonic import HTTPClient
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
client = HTTPClient()
...
async def claim_group(headers: dict, group_id: int) -> dict:
global client
start_time = time.time()
print(client)
join_request = await client.post(f"https://groups.roblox.com/v1/groups/{group_id}/users", headers=headers)
claim_request = await client.post(f"https://groups.roblox.com/v1/groups/{group_id}/claim-ownership", headers=headers)
end_time = time.time()
json = {"join_request": join_request, "claim_request": claim_request, "time": end_time - start_time}
print(json)
return json
А также полная ошибка:
Traceback (most recent call last):
File "D:\python 3.11.6\Lib\site-packages\discord\client.py", line 600, in _run_event
await coro(*args, **kwargs)
File "C:\Users\Alexander\Documents\re-autoclaimer\main.py", line 23, in on_message
await claim_group(headers, id)
File "C:\Users\Alexander\Documents\re-autoclaimer\source\backend\requesting.py", line 36, in claim_group
join_request = await client.post(f"https://groups.roblox.com/v1/groups/{group_id}/users", headers=headers)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\python 3.11.6\Lib\site-packages\aiosonic\__init__.py", line 596, in post
return await self._request_with_body(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\python 3.11.6\Lib\site-packages\aiosonic\__init__.py", line 542, in _request_with_body
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "D:\python 3.11.6\Lib\site-packages\aiosonic\__init__.py", line 772, in request
response = await wait_for(
^^^^^^^^^^^^^^^
File "D:\python 3.11.6\Lib\asyncio\tasks.py", line 489, in wait_for
return fut.result()
^^^^^^^^^^^^
File "D:\python 3.11.6\Lib\site-packages\aiosonic\__init__.py", line 422, in _do_request
async with (await connector.acquire(*args)) as connection:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\python 3.11.6\Lib\site-packages\aiosonic\connectors.py", line 76, in acquire
return await self.after_acquire(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\python 3.11.6\Lib\site-packages\aiosonic\connectors.py", line 91, in after_acquire
dns_info = await self.__resolve_dns(urlparsed.hostname, urlparsed.port)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\python 3.11.6\Lib\site-packages\aiosonic\connectors.py", line 123, in __resolve_dns
dns_data = await self.resolver.resolve(host, port)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\python 3.11.6\Lib\site-packages\aiosonic\resolver.py", line 53, in resolve
infos = await self.loop.getaddrinfo(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\python 3.11.6\Lib\asyncio\base_events.py", line 867, in getaddrinfo
return await self.run_in_executor(
^^^^^^^^^^^^^^^^^^^^^
File "D:\python 3.11.6\Lib\asyncio\base_events.py", line 816, in run_in_executor
self._check_closed()
File "D:\python 3.11.6\Lib\asyncio\base_events.py", line 519, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed