From 1c10cd636a771405a16c1a73d0949e54e1dd2525 Mon Sep 17 00:00:00 2001 From: tchoedak Date: Sun, 7 Jul 2024 14:24:33 -0700 Subject: [PATCH 1/4] add a command to enable registration of a player --- modules/bot.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/modules/bot.py b/modules/bot.py index 8b72a38..b0701fe 100644 --- a/modules/bot.py +++ b/modules/bot.py @@ -754,6 +754,9 @@ async def processmsg(self, msg): elif lower[0]=="cancel": self.cancel_match(member, lower[1:2], access_level) + elif lower[0]=="register": + await self.register_player(member, msgtup[1:msglen], access_level) + elif lower[0] in ["reportwin", "rw"]: self.report_match(member, args=lower[1:3], access_level=access_level) @@ -2092,6 +2095,43 @@ async def set_phrase(self, member, args, access_level): else: client.reply(self.channel, member, "You have no right for this!") + async def register_player(self, member, args, access_level): + # .register_player @person 12234343434 + + def is_valid_2k4_id(ut_2k4_id): + formatted_string = f"{s[:8]}-{s[8:16]}-{s[16:24]}-{s[24:32]}" + pattern = re.compile(r'^[A-F0-9]{8}-[A-F0-9]{8}-[A-F0-9]{8}-[A-F0-9]{8}$') + return bool(pattern.match(formatted_string)) + + def normalize_2k4_id(ut_2k4_id): + return ut_2k4_id.replace('-', '').lower() + + if access_level: + targetid = args.pop(0) + highlight = re.match(r"<@!?(\d+)>", targetid) + + if highlight: + target = await self.guild.fetch_member(int(highlight.group(1))) + member_id = target.id + nick = target.nick + ut_2k4_id = args[-1] + + ut_2k4_id = normalize_2k4_id(ut_2k4_id) + if is_valid_2k4_id(ut_2k4_id): + player = players.Player( + name=nick, + discord_id=member_id, + ut_2k4_id=ut_2k4_id + ) + + player_stats.add_player(player) + else: + client.reply(self.channel, member, "Targets 2k4 GUID is not valid. Proper command is `.register_player @mention `") + else: + client.reply(self.channel, member, "You must @mention a valid discord member. Proper command is `.register_player @mention `") + else: + client.reply(self.channel, member, "You have no right for this!") + async def noadd(self, member, args, access_level): if access_level: reason = '' From bf2f33efdd7fa2857f48d79ef0d89d95f9b3017d Mon Sep 17 00:00:00 2001 From: tchoedak Date: Mon, 8 Jul 2024 00:00:36 -0700 Subject: [PATCH 2/4] make sure player stats are grabbed from past 60 days --- modules/players.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/players.py b/modules/players.py index e649822..f514d02 100644 --- a/modules/players.py +++ b/modules/players.py @@ -98,7 +98,7 @@ def _load_player_stats(self, ttl_hash=None): AND m.gm_numplayers >= 8 AND m.gm_tscore0 + m.gm_tscore1 >= 10 AND IF(gp.gp_team = 0, gp.gp_tscore0, gp.gp_tscore1) > 0 - AND m.gm_start BETWEEN FROM_UNIXTIME(1714521600) AND FROM_UNIXTIME(1718849956) + AND datediff(curdate(), m.gm_start) <= 60 ) SELECT From b7553df2f041bb11780e54c860cf54bb49ee4ebb Mon Sep 17 00:00:00 2001 From: tchoedak Date: Wed, 10 Jul 2024 17:53:03 -0700 Subject: [PATCH 3/4] fix query --- modules/players.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/players.py b/modules/players.py index f514d02..84b7fc6 100644 --- a/modules/players.py +++ b/modules/players.py @@ -102,7 +102,7 @@ def _load_player_stats(self, ttl_hash=None): ) SELECT - player_match_history.plr_name as name, + ut_players.name, ut_players.DISCORD_ID, player_match_history.plr_key as player_guid, SUM(Score) / SUM(Rounds) as PPR, From d7ade125dd4242691693cdcf798bf9d8ca235f5c Mon Sep 17 00:00:00 2001 From: tchoedak Date: Sat, 13 Jul 2024 15:57:04 -0700 Subject: [PATCH 4/4] fix notifying channel when next turn to pick --- modules/bot.py | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/bot.py b/modules/bot.py index b0701fe..f56993f 100644 --- a/modules/bot.py +++ b/modules/bot.py @@ -1188,7 +1188,6 @@ def pick_player(self, member, args): else: who = match.team_names[1] - who_stat = player_stats.get_player() msg += "\n{0}'s {1} turn to pick!".format(who, who_stat) client.notice(self.channel, msg) else: