diff options
| author | 2024-03-26 17:55:57 +0000 | |
|---|---|---|
| committer | 2024-03-26 17:55:57 +0000 | |
| commit | 6caeae9f7ddbb7f4ecafd79016baa28ad2cd0a6c (patch) | |
| tree | 7dd81c3d78077289167f233e03a57ccdf5ad537d | |
| parent | Add sentry performance spans to news cog (diff) | |
Add sentry performance spans to subscribe cog
Diffstat (limited to '')
| -rw-r--r-- | bot/exts/info/subscribe.py | 34 | 
1 files changed, 19 insertions, 15 deletions
| diff --git a/bot/exts/info/subscribe.py b/bot/exts/info/subscribe.py index 048884587..5e33474bf 100644 --- a/bot/exts/info/subscribe.py +++ b/bot/exts/info/subscribe.py @@ -2,6 +2,7 @@ import operator  from dataclasses import dataclass  import discord +import sentry_sdk  from discord.ext import commands  from discord.interactions import Interaction  from pydis_core.utils import members @@ -157,24 +158,27 @@ class Subscribe(commands.Cog):          await self.bot.wait_until_guild_available()          self.guild = self.bot.get_guild(constants.Guild.id) -        for role in ASSIGNABLE_ROLES: -            discord_role = self.guild.get_role(role.role_id) -            if discord_role is None: -                log.warning("Could not resolve %d to a role in the guild, skipping.", role.role_id) -                continue -            self.assignable_roles.append( -                AssignableRole( -                    role_id=role.role_id, -                    name=discord_role.name, +        with sentry_sdk.start_span(description="Prepare assignable roles"): +            for role in ASSIGNABLE_ROLES: +                discord_role = self.guild.get_role(role.role_id) +                if discord_role is None: +                    log.warning("Could not resolve %d to a role in the guild, skipping.", role.role_id) +                    continue +                self.assignable_roles.append( +                    AssignableRole( +                        role_id=role.role_id, +                        name=discord_role.name, +                    )                  ) -            ) +            # Sort by role name +            self.assignable_roles.sort(key=operator.attrgetter("name")) -        # Sort by role name -        self.assignable_roles.sort(key=operator.attrgetter("name")) +        with sentry_sdk.start_span(description="Fetch/create the self assignable roles message"): +            placeholder_message_view_tuple = await self._fetch_or_create_self_assignable_roles_message() +            self_assignable_roles_message, self_assignable_roles_view = placeholder_message_view_tuple -        placeholder_message_view_tuple = await self._fetch_or_create_self_assignable_roles_message() -        self_assignable_roles_message, self_assignable_roles_view = placeholder_message_view_tuple -        self._attach_persistent_roles_view(self_assignable_roles_message, self_assignable_roles_view) +        with sentry_sdk.start_span(description="Attach self assignable role persistent view"): +            self._attach_persistent_roles_view(self_assignable_roles_message, self_assignable_roles_view)      @commands.cooldown(1, 10, commands.BucketType.member)      @commands.command(name="subscribe", aliases=("unsubscribe",)) | 
