fix: runs threads for background tasks

This commit is contained in:
Ryan 2025-01-05 19:26:07 -05:00
parent 82cd56ace8
commit ebde4f1310
Signed by: ErrorNoInternet
GPG Key ID: 2486BFB7B1E6A4A3
2 changed files with 30 additions and 11 deletions

View File

@ -1,3 +1,6 @@
import asyncio
import threading
import commands import commands
import core import core
import tasks import tasks
@ -5,7 +8,23 @@ from state import client
async def on_ready(): async def on_ready():
await tasks.check_idle() threading.Thread(
name="cleanup",
target=asyncio.run_coroutine_threadsafe,
args=(
tasks.cleanup(),
client.loop,
),
).start()
threading.Thread(
name="check_idle",
target=asyncio.run_coroutine_threadsafe,
args=(
tasks.check_idle(),
client.loop,
),
).start()
async def on_message(message): async def on_message(message):

View File

@ -6,16 +6,6 @@ import disnake
from state import client, last_used, players from state import client, last_used, players
async def check_idle():
while True:
await asyncio.sleep(3600)
if time.time() - last_used >= 3600:
await client.change_presence(status=disnake.Status.idle)
else:
await client.change_presence(status=disnake.Status.online)
async def cleanup(): async def cleanup():
while True: while True:
await asyncio.sleep(3600) await asyncio.sleep(3600)
@ -26,3 +16,13 @@ async def cleanup():
targets.append(id) targets.append(id)
for target in targets: for target in targets:
del players[target] del players[target]
async def check_idle():
while True:
await asyncio.sleep(3600)
if time.time() - last_used >= 3600:
await client.change_presence(status=disnake.Status.idle)
else:
await client.change_presence(status=disnake.Status.online)