Compare commits

...
5 changed files with 37 additions and 21 deletions
+3 -4
View File
@@ -26,9 +26,6 @@ class SubmissionListener(commands.Cog, name="Message Listener"):
highscores_data["submission_channel_id"] highscores_data["submission_channel_id"]
).fetch_message(message_id) ).fetch_message(message_id)
# TODO want to regex score to ensure it is correct.
# # here is also where score can be standardized in look
# need check if correct user and correct channel # need check if correct user and correct channel
if message.channel.id == highscores_data["submission_channel_id"]: if message.channel.id == highscores_data["submission_channel_id"]:
state = submission_objects[message.author.id]["submission_state"] state = submission_objects[message.author.id]["submission_state"]
@@ -43,7 +40,9 @@ class SubmissionListener(commands.Cog, name="Message Listener"):
files=[await attch.to_file() for attch in message.attachments], files=[await attch.to_file() for attch in message.attachments],
) )
elif state == SubmissionState.NAME and message.content: elif state == SubmissionState.NAME and message.content:
submission_objects[message.author.id]["username"] = message.content[:12] submission_objects[message.author.id]["username"] = message.content[
: highscores_data["username_length"]
]
embed = get_submission_embed(message.author.id) embed = get_submission_embed(message.author.id)
await submission_message.edit( await submission_message.edit(
embed=embed, embed=embed,
+3 -1
View File
@@ -201,7 +201,9 @@ class SubmissionCreateButton(nextcord.ui.View):
"boss_name": boss_name, "boss_name": boss_name,
"score": "", "score": "",
"category": "", "category": "",
"username": interaction.user.display_name.split("|")[0][:12], "username": interaction.user.display_name.split("|")[0][
: highscores_data["username_length"]
],
} }
embed = get_submission_embed(interaction.user.id) embed = get_submission_embed(interaction.user.id)
+9 -9
View File
@@ -10,6 +10,15 @@ class VerificationView(nextcord.ui.View):
def __init__(self): def __init__(self):
super().__init__(timeout=None) super().__init__(timeout=None)
@nextcord.ui.button(
label="Deny", style=nextcord.ButtonStyle.red, custom_id="deny-button-submission"
)
async def deny_button(
self, button: nextcord.ui.Button, interaction: nextcord.Interaction
): # pylint: disable=unused-argument
"""Button for denying score submission."""
await interaction.message.delete()
@nextcord.ui.button( @nextcord.ui.button(
label="Approve", style=nextcord.ButtonStyle.green, custom_id="approve-button-submission" label="Approve", style=nextcord.ButtonStyle.green, custom_id="approve-button-submission"
) )
@@ -35,12 +44,3 @@ class VerificationView(nextcord.ui.View):
except UnboundLocalError: except UnboundLocalError:
await interaction.send("Instruct user to submit with all fields.") await interaction.send("Instruct user to submit with all fields.")
await interaction.message.edit(view=None) await interaction.message.edit(view=None)
@nextcord.ui.button(
label="Deny", style=nextcord.ButtonStyle.red, custom_id="deny-button-submission"
)
async def deny_button(
self, button: nextcord.ui.Button, interaction: nextcord.Interaction
): # pylint: disable=unused-argument
"""Button for denying score submission."""
await interaction.message.delete()
+1 -1
View File
@@ -28,7 +28,7 @@ def open_highscores_data():
data = json.load(file) data = json.load(file)
else: else:
# create the json object # create the json object
data = {"highscore_channel_id": -1, "verification_channel_id": -1} data = {"highscore_channel_id": -1, "verification_channel_id": -1, "username_length": 12}
config: dict = open_highscores_config() config: dict = open_highscores_config()
for boss, categories in config["highscore_table"].items(): for boss, categories in config["highscore_table"].items():
data[boss] = {"message_id": 0} data[boss] = {"message_id": 0}
+21 -6
View File
@@ -21,7 +21,7 @@ def format_highscore_message(boss_name: str):
# Gather all categories and add to string # Gather all categories and add to string
for key, value in boss_data["categories"].items(): for key, value in boss_data["categories"].items():
ret_string += f"{key}".ljust(25, " ") ret_string += f"{key}".ljust(26, " ")
ret_string += "\n" ret_string += "\n"
highscore_size = highscores_config["highscore_size"] highscore_size = highscores_config["highscore_size"]
@@ -30,10 +30,25 @@ def format_highscore_message(boss_name: str):
for i in range(highscore_size): for i in range(highscore_size):
for key, value in boss_data["categories"].items(): for key, value in boss_data["categories"].items():
if len(value) > i: if len(value) > i:
score = value[i] score_pair = value[i]
ret_string += f"{i+1}: {score[0]} - {score[1]}".ljust(25, " ")
# pad username to max length.
username: str = score_pair[0].ljust(highscores_data["username_length"], " ")
score: str = str(score_pair[1])
# standardize time score format.
if highscores_config["categories"][key]["is_time_record"]:
if score.find(":") == -1:
score = "00:" + score
elif len(score.split(":", maxsplit=1)[0]) < 2:
score = "0" + score
if score.find(".") == -1:
# insert 2 spaces to make up for period and ms
score = score + " "
line_str = f"{i+1}: {username} - "
ret_string += line_str + score.rjust(26 - len(line_str) - 1) + " "
else: else:
ret_string += f"{i+1}: submit your score".ljust(25, " ") ret_string += f"{i+1}: submit your score".ljust(26, " ")
ret_string += "\n" ret_string += "\n"
return ret_string + "```" return ret_string + "```"
@@ -77,9 +92,9 @@ async def submit_score(
boss_category_config = highscores_config["categories"][category] boss_category_config = highscores_config["categories"][category]
# capping to 12 characters because runescape names are 12 characters long.
# Splitting on pipe. My discord has multiple names on account split by pipe. # Splitting on pipe. My discord has multiple names on account split by pipe.
user = user.split("|")[0][:12] # cap length to data defined length.
user = user.split("|")[0][: highscores_data["username_length"]]
# strip leading zeros and colon from score # strip leading zeros and colon from score
score = score.lstrip("0:") score = score.lstrip("0:")