Browse Source

task updater

huy
gsd 2 years ago
parent
commit
642f34e5cc
  1. 24
      other_ext/stats_loader.py
  2. 42
      other_ext/stats_presence.py

24
other_ext/stats_loader.py

@ -1,12 +1,22 @@
from discord.ext import tasks from discord.ext import tasks
import traceback import traceback
import asyncio
class Extension: class Extension:
core = None
def __init__(self, core): def __init__(self, core):
@tasks.loop(seconds=60.0) self.core = core
async def stats_loader(core): self.core.loop.create_task(self.task())
try:
print("Load stats from backend") async def task(self, timeout = 60):
core.stats = await core.GetStats() await self.core.wait_until_ready()
except: while True:
traceback.print_exc() await self.updater()
await asyncio.sleep(timeout)
async def updater(self):
try:
print("Load stats from backend")
self.core.stats = await self.core.GetStats()
except:
traceback.print_exc()

42
other_ext/stats_presence.py

@ -1,25 +1,35 @@
from discord.ext import tasks from discord.ext import tasks
import discord import discord
import traceback import traceback
import asyncio
class Extension: class Extension:
show_stats_prev = 0 show_stats_prev = 0
core = None
def __init__(self, core): def __init__(self, core):
@tasks.loop(seconds=3) self.core = core
async def show_stats(core): self.core.loop.create_task(self.task())
try:
if not core.stats['servers'].items(): async def task(self, timeout = 3):
print("Stats not be loaded") await self.core.wait_until_ready()
return while True:
try: await self.updater()
server = core.stats['servers'].items()[self.show_stats_prev] await asyncio.sleep(timeout)
self.show_stats_prev += 1
except:
self.show_stats_prev = 0
server = core.stats['servers'].items()[self.show_stats_prev]
addr = server['address'].split(":") async def updater(self):
act = discord.Streaming(name = f"{server['name']} - {server['player_count']}", url=f"https://{addr[0]}/connect/{addr[1]}") try:
await core.change_presence(activity=act) if not self.core.stats['servers'].items():
print("Stats not be loaded")
return
try:
server = self.core.stats['servers'].items()[self.show_stats_prev]
self.show_stats_prev += 1
except: except:
traceback.print_exc() self.show_stats_prev = 0
server = self.core.stats['servers'].items()[self.show_stats_prev]
addr = server['address'].split(":")
act = discord.Streaming(name = f"{server['name']} - {server['player_count']}", url=f"https://{addr[0]}/connect/{addr[1]}")
await self.core.change_presence(activity=act)
except:
traceback.print_exc()
Loading…
Cancel
Save