diff --git a/cogs/commands/view.py b/cogs/commands/view.py index b68eaa2..dcf9c6d 100644 --- a/cogs/commands/view.py +++ b/cogs/commands/view.py @@ -67,9 +67,24 @@ class ViewCog(commands.Cog, name="View Commands"): cycles = df.groupby("Cycle") content = "" for cycle in cycles.groups: - content += f"```{cycle}```\n" - group = cycles.get_group(cycle) - for row in group.itertuples(): + content += f"**{cycle}**\n" + unsorted_all = cycles.get_group(cycle).groupby("DiscordMember") + members = unsorted_all.get_group(True) + non_members = unsorted_all.get_group(False) + sorted_members = members.sort_values( + by="UserId", + key=lambda user_ids: ( + [ + interaction.guild.get_member(int(id)).display_name + for id in user_ids + ] + ), + ) + sorted_non_members = non_members.sort_values(by="UserId") + sorted_all = pd.concat( + [sorted_members, sorted_non_members], ignore_index=True, sort=False + ) + for row in sorted_all.itertuples(): userid = row.UserId points = row.Points discord_member = row.DiscordMember @@ -78,10 +93,11 @@ class ViewCog(commands.Cog, name="View Commands"): if discord_member else f"{userid}: {points}\n" ) + content += "\n" if len(content) > 2000: await interaction.followup.send( - "Message length is too long, please choose a quarter." + "Message length is too long, please select search to limit results." ) return