nicer leaderboard + timing

This commit is contained in:
SowinskiBraeden committed 2024-11-17 19:49:14 -08:00
1 parent 9ff1132eac
commit ce624ccf34
3 files changed
+8 -4

No files matched your search

+2 -1
View File
@@ -27,12 +27,12 @@ class Event(app_commands.Group):
async def stop(self, interaction: Interaction) -> None: async def stop(self, interaction: Interaction) -> None:
if not self.hasPermission(interaction.user): await interaction.response.send_message("You don't have permission to use this command.", ephemeral=True) if not self.hasPermission(interaction.user): await interaction.response.send_message("You don't have permission to use this command.", ephemeral=True)
if not self.bot._running: await interaction.response.send_message("Event already stopped", ephemeral=True) if not self.bot._running: await interaction.response.send_message("Event already stopped", ephemeral=True)
self.bot.scrape_file.stop()
# Reset trackers # Reset trackers
self.bot._running = False self.bot._running = False
self.bot.log_file = "" self.bot.log_file = ""
self.bot.log_index = -1 self.bot.log_index = -1
self.bot.start_time = -1
self.bot.players = [] self.bot.players = []
self.bot.gamertags = [] self.bot.gamertags = []
self.bot.message_id = "" self.bot.message_id = ""
@@ -43,6 +43,7 @@ class Event(app_commands.Group):
self.ssh = None self.ssh = None
await interaction.response.send_message("Stopping event leaderboard...", ephemeral=True) await interaction.response.send_message("Stopping event leaderboard...", ephemeral=True)
self.bot.scrape_file.stop()
async def setup(bot: commands.Bot) -> None: async def setup(bot: commands.Bot) -> None:
bot.tree.add_command(Event(bot, name="event", description="start or stop an event leaderboard")) bot.tree.add_command(Event(bot, name="event", description="start or stop an event leaderboard"))
-1
View File
@@ -129,7 +129,6 @@ def readLogFromIndex(
bot.gamertags.append(gt_data.group("gamertag")) bot.gamertags.append(gt_data.group("gamertag"))
continue continue
print("done reading logs...")
return return
def getLatestDir(sftp: SFTPClient, remote_path: str) -> str: def getLatestDir(sftp: SFTPClient, remote_path: str) -> str:
+6 -2
View File
@@ -5,6 +5,7 @@ from discord.ext import commands
from discord.ext import tasks from discord.ext import tasks
from discord import Object from discord import Object
from os import listdir, getcwd from os import listdir, getcwd
from time import time
import requests import requests
from handlers.sftp import createSSHClient from handlers.sftp import createSSHClient
@@ -18,6 +19,7 @@ class ReforgerStats(commands.Bot):
self._running: bool = False self._running: bool = False
self.log_dir: str = "" self.log_dir: str = ""
self.log_index: int = -1 self.log_index: int = -1
self.start_time: int = -1
self.message_id: str = "" self.message_id: str = ""
self.players: list[dict] = [] self.players: list[dict] = []
self.gamertags: list[str] = [] self.gamertags: list[str] = []
@@ -49,10 +51,11 @@ class ReforgerStats(commands.Bot):
async def createLeaderboardEmbed(self, players: list[dict]) -> dict: async def createLeaderboardEmbed(self, players: list[dict]) -> dict:
sorted_players = sorted(players, key=lambda a: a["kills"], reverse=True) sorted_players = sorted(players, key=lambda a: a["kills"], reverse=True)
description = "" current: int = round(time())
description = f"From <t:{self.start_time}> to <t:{current}>"
rank = 1 rank = 1
for player in sorted_players: for player in sorted_players:
description += f"> **{rank}.** {player['gamertag']}\n> ***Kills*** {player['kills']}\n> ***Deaths*** {player['deaths']}\n\n" description += f"> **{rank}.** {player['gamertag']}\n`{player['KDR']}` KDR - `{player['kills']}` Kill{'s' if player['kills'] > 1 or player['kills'] == 0 else ''} `{player['deaths']}` Death{'s' if player['deaths'] > 1 or player['deaths'] == 0 else ''}\n"
rank += 1 rank += 1
return { return {
@@ -90,6 +93,7 @@ class ReforgerStats(commands.Bot):
if self.log_index == -1: if self.log_index == -1:
self.log_index = len(lines) - 1 self.log_index = len(lines) - 1
self.start_time = round(time())
getPlayers(self, lines) # Get all players from this log file to add to self.players / self.gamertags getPlayers(self, lines) # Get all players from this log file to add to self.players / self.gamertags
return return