diff --git a/utilities/utils.py b/utilities/utils.py index c2d5860..0ed6324 100644 --- a/utilities/utils.py +++ b/utilities/utils.py @@ -192,7 +192,7 @@ def format_highscore_message(group: CategoryGroup) -> str: # also grab the max category size categories = [] category_ids = [] - max_cat_size = 0 + max_cat_size: int = 0 pad_length = group.PadLength for cat in session.scalars(stmt): if cat.Size > max_cat_size: @@ -257,19 +257,25 @@ def format_highscore_message(group: CategoryGroup) -> str: # need to use index to allow for modifying the list for ind, line in enumerate(str_list): if len(line) > MAX_LINE_LENGTH: + split_loc = int(MAX_LINE_LENGTH / pad_length) * pad_length new_line = line[split_loc:] str_list[ind] = line[:split_loc] str_list.append(new_line) - if ind + 1 / max_cat_size == 0: - str_list.append("\n") # this list can now be placed into the format message function in the bot - for string in str_list: + for ind, string in enumerate(str_list): # rstrip to clear unneeded spaces # add newline here for each string ret_string += string.rstrip() + "\n" + # add extra newline at category split unless there is already a space. + if ((ind + 1) % (max_cat_size + 1)) == 0: + # checking inside the other if to ensure called as little as possible. + if not ret_string.endswith("\n\n"): + ret_string += "\n" + + print(ret_string) return ret_string + "```"