From 081e406d51a2197c7520290909b5dafa9fabc442 Mon Sep 17 00:00:00 2001 From: alwayscompiling Date: Sat, 3 Dec 2022 20:49:17 -0500 Subject: [PATCH] Allow user to update score. --- utilities/utils.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/utilities/utils.py b/utilities/utils.py index 0ed6324..11e8b79 100644 --- a/utilities/utils.py +++ b/utilities/utils.py @@ -275,7 +275,6 @@ def format_highscore_message(group: CategoryGroup) -> str: if not ret_string.endswith("\n\n"): ret_string += "\n" - print(ret_string) return ret_string + "```" @@ -345,8 +344,14 @@ async def submit_score( else: score = float(score) - score_obj = Score(UserName=username, Score=score, CategoryId=category_id) - session.add(score_obj) + stmt = select(Score).where(Score.UserName == username).where(Score.CategoryId == category_id) + existing_score = session.scalar(stmt) + + if existing_score: + existing_score.Score = score + else: + score_obj = Score(UserName=username, Score=score, CategoryId=category_id) + session.add(score_obj) session.commit() stmt = select(CategoryGroup).where(CategoryGroup.GroupId == group_id) @@ -356,7 +361,7 @@ async def submit_score( channel = interaction.guild.get_channel(group.ChannelId) error_response = "Registered Highscores channel does not exist or was never registered." - error_response += 'Register with "?register" command.' + error_response += 'Register with "/register" command.' assert channel is not None, await interaction.send(error_response, ephemeral=True) await send_highscore_message(channel, group)