Browse Source

task updater

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

16
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())
async def task(self, timeout = 60):
await self.core.wait_until_ready()
while True:
await self.updater()
await asyncio.sleep(timeout)
async def updater(self):
try: try:
print("Load stats from backend") print("Load stats from backend")
core.stats = await core.GetStats() self.core.stats = await self.core.GetStats()
except: except:
traceback.print_exc() traceback.print_exc()

22
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())
async def task(self, timeout = 3):
await self.core.wait_until_ready()
while True:
await self.updater()
await asyncio.sleep(timeout)
async def updater(self):
try: try:
if not core.stats['servers'].items(): if not self.core.stats['servers'].items():
print("Stats not be loaded") print("Stats not be loaded")
return return
try: try:
server = core.stats['servers'].items()[self.show_stats_prev] server = self.core.stats['servers'].items()[self.show_stats_prev]
self.show_stats_prev += 1 self.show_stats_prev += 1
except: except:
self.show_stats_prev = 0 self.show_stats_prev = 0
server = core.stats['servers'].items()[self.show_stats_prev] server = self.core.stats['servers'].items()[self.show_stats_prev]
addr = server['address'].split(":") addr = server['address'].split(":")
act = discord.Streaming(name = f"{server['name']} - {server['player_count']}", url=f"https://{addr[0]}/connect/{addr[1]}") act = discord.Streaming(name = f"{server['name']} - {server['player_count']}", url=f"https://{addr[0]}/connect/{addr[1]}")
await core.change_presence(activity=act) await self.core.change_presence(activity=act)
except: except:
traceback.print_exc() traceback.print_exc()
Loading…
Cancel
Save