Добрый вечер, написал вот такой код:
import discord
from discord.ext import commands, tasks
import valve.rcon
import valve.source.a2s
class Check(commands.Cog):
def __init__(self, client, address, password):
self.client = client
self.address = address
self.password = password
self.check.start()
@tasks.loop(seconds=10)
async def check(self):
try:
with valve.source.a2s.ServerQuerier(self.address, timeout=10.0) as server:
info = server.info()
players = info['player_count']
max_players = info['max_players']
print(f"-----------------------------------\n"
f"Player count: {players}/{max_players}")
if players == 0:
await self.client.change_presence(status=discord.Status.idle,
activity=discord.Game(f"{players}/{max_players}"))
else:
await self.client.change_presence(status=discord.Status.online,
activity=discord.Game(f"{players}/{max_players}"))
except valve.source.NoResponseError:
print(f"-----------------------------------\n"
f"Server dead")
await self.client.change_presence(status=discord.Status.dnd,
activity=discord.Game("Ислам"))
Данный код, каждые 10 секунд, запрашивает информацию с сервера CS:GO. Он рабочий, но через некоторое время +- пару часов, он просто перестаёт работать, и приходиться перезапускать бота. Пробовал делать через апишку хостинга, но результат тот же, подозреваю что не правильно сделал tasks.loop (Сделано в коге). Заранее спасибо за помощь!