diff --git a/dashboard/__init__.py b/dashboard/__init__.py index 63a74c1..4630e71 100644 --- a/dashboard/__init__.py +++ b/dashboard/__init__.py @@ -5,5 +5,5 @@ async def setup(bot: Red): cog = Dashboard(bot) - bot.add_cog(cog) + await bot.add_cog(cog) await cog.initialize() diff --git a/dashboard/abc/abc.py b/dashboard/abc/abc.py index 76941d1..5f0cf2d 100644 --- a/dashboard/abc/abc.py +++ b/dashboard/abc/abc.py @@ -1,6 +1,6 @@ from abc import ABC, abstractmethod -from redbot.core import Config +from redbot.core import Config, commands from redbot.core.bot import Red @@ -12,3 +12,8 @@ class MixinMeta(ABC): def __init__(self, *_args): self.config: Config self.bot: Red + + @commands.group(name="dashboard") + async def dashboard(self, ctx: commands.Context): + """Group command for controlling the web dashboard for Red.""" + pass diff --git a/dashboard/abc/roles.py b/dashboard/abc/roles.py index 45d11b8..c98d1b3 100644 --- a/dashboard/abc/roles.py +++ b/dashboard/abc/roles.py @@ -3,10 +3,11 @@ import discord from dashboard.abc.abc import MixinMeta -from dashboard.abc.mixin import dashboard from dashboard.baserpc import HUMANIZED_PERMISSIONS +dashboard = MixinMeta.dashboard + class DashboardRolesMixin(MixinMeta): @checks.guildowner() diff --git a/dashboard/abc/settings.py b/dashboard/abc/settings.py index 65f01f4..8331859 100644 --- a/dashboard/abc/settings.py +++ b/dashboard/abc/settings.py @@ -10,10 +10,11 @@ import os from dashboard.abc.abc import MixinMeta -from dashboard.abc.mixin import dashboard from dashboard.baserpc import HUMANIZED_PERMISSIONS +dashboard = MixinMeta.dashboard + THEME_COLORS = ["red", "primary", "blue", "green", "greener", "yellow"] diff --git a/dashboard/abc/webserver.py b/dashboard/abc/webserver.py index 56cb910..d637802 100644 --- a/dashboard/abc/webserver.py +++ b/dashboard/abc/webserver.py @@ -4,12 +4,14 @@ import discord from dashboard.abc.abc import MixinMeta -from dashboard.abc.mixin import dashboard from dashboard.baserpc import HUMANIZED_PERMISSIONS from dashboard.menus import ClientList, ClientMenu +dashboard = MixinMeta.dashboard + + class DashboardWebserverMixin(MixinMeta): @checks.is_owner() @dashboard.group() diff --git a/dashboard/baserpc.py b/dashboard/baserpc.py index 90874c5..2ba3bfd 100644 --- a/dashboard/baserpc.py +++ b/dashboard/baserpc.py @@ -160,7 +160,7 @@ async def get_variables(self): returning = { "botname": self.bot.user.name, - "botavatar": str(self.bot.user.avatar_url_as(static_format="png")), + "botavatar": str(self.bot.user.avatar.url), "botid": self.bot.user.id, "clientid": client_id, "botinfo": markdown2.markdown(botinfo), @@ -261,9 +261,9 @@ async def get_users_servers(self, userid: int): "name": escape(guild.name), "id": str(guild.id), "owner": escape(str(guild.owner)), - "icon": str(guild.icon_url_as(format="png"))[:-13] - or "https://cdn.discordapp.com/embed/avatars/1.", - "animated": guild.is_icon_animated(), + "icon": str(guild.icon.url)[:-13] if guild.icon else + "https://cdn.discordapp.com/embed/avatars/1.", + "animated": guild.icon.is_animated() if guild.icon else False, "go": False, } if is_owner: @@ -351,15 +351,6 @@ async def get_server(self, userid: int, serverid: int): else: vl = "Unknown" - region = getattr(guild.region, "name", guild.region) - parts = region.split("_") - for i, p in enumerate(parts): - if p in ["eu", "us", "vip"]: - parts[i] = p.upper() - else: - parts[i] = p.title() - region = " ".join(parts) - if not self.cog.configcache.get(serverid, {"roles": []})["roles"]: warn = True else: @@ -386,9 +377,9 @@ async def get_server(self, userid: int, serverid: int): "name": escape(guild.name), "id": guild.id, "owner": escape(str(guild.owner)), - "icon": str(guild.icon_url_as(format="png"))[:-13] - or "https://cdn.discordapp.com/embed/avatars/1.", - "animated": guild.is_icon_animated(), + "icon": str(guild.icon.url)[:-13] if guild.icon else + "https://cdn.discordapp.com/embed/avatars/1.", + "animated": guild.icon.is_animated() if guild.icon else False, "members": humanize_number(len(guild.members)), "online": humanize_number(stats["o"]), "idle": humanize_number(stats["i"]), @@ -402,7 +393,7 @@ async def get_server(self, userid: int, serverid: int): "joined": joined, "roleswarn": warn, "vl": vl, - "region": region, + "region": "", "prefixes": await self.bot.get_valid_prefixes(guild), "adminroles": adminroles, "modroles": modroles, diff --git a/dashboard/dashboard.py b/dashboard/dashboard.py index 6c44f3f..d814a5d 100644 --- a/dashboard/dashboard.py +++ b/dashboard/dashboard.py @@ -29,7 +29,6 @@ class Dashboard( DashboardRolesMixin, DashboardWebserverMixin, DashboardSettingsMixin, - DBMixin, commands.Cog, metaclass=CompositeMetaClass, ):