diff --git a/antipolls/antipolls.py b/antipolls/antipolls.py index 810e88b..15aecfd 100644 --- a/antipolls/antipolls.py +++ b/antipolls/antipolls.py @@ -9,14 +9,15 @@ import discord from red_commons.logging import getLogger from redbot.core import commands from redbot.core.bot import Config, Red -from redbot.core.utils.chat_formatting import humanize_list +from redbot.core.utils.chat_formatting import bold, humanize_list class AntiPolls(commands.Cog): """AntiPolls deletes messages that contain polls, with a configurable per-guild role and channel whitelist and support for default Discord permissions (Manage Messages).""" - __author__ = ["SeaswimmerTheFsh"] - __version__ = "1.0.0" + __author__ = ["[cswimr](https://www.coastalcommits.com/cswimr)"] + __git__ = "https://www.coastalcommits.com/cswimr/SeaCogs" + __version__ = "1.0.1" __documentation__ = "https://seacogs.coastalcommits.com/antipolls/" def __init__(self, bot: Red): @@ -38,9 +39,9 @@ class AntiPolls(commands.Cog): n = "\n" if "\n\n" not in pre_processed else "" text = [ f"{pre_processed}{n}", - f"Cog Version: **{self.__version__}**", - f"Author: {humanize_list(self.__author__)}", - f"Documentation: {self.__documentation__}", + f"{bold('Cog Version:')} [{self.__version__}]({self.__git__})", + f"{bold('Author:')} {humanize_list(self.__author__)}", + f"{bold('Documentation:')} {self.__documentation__}", ] return "\n".join(text) diff --git a/backup/backup.py b/backup/backup.py index 6202e3a..5d01c6b 100644 --- a/backup/backup.py +++ b/backup/backup.py @@ -14,15 +14,16 @@ from redbot.cogs.downloader import errors from redbot.cogs.downloader.converters import InstalledCog from redbot.core import commands from redbot.core.bot import Red -from redbot.core.utils.chat_formatting import error, humanize_list, text_to_file +from redbot.core.utils.chat_formatting import bold, error, humanize_list, text_to_file # pylint: disable=protected-access class Backup(commands.Cog): """A utility to make reinstalling repositories and cogs after migrating the bot far easier.""" - __author__ = ["SeaswimmerTheFsh"] - __version__ = "1.1.0" + __author__ = ["[cswimr](https://www.coastalcommits.com/cswimr)"] + __git__ = "https://www.coastalcommits.com/cswimr/SeaCogs" + __version__ = "1.1.1" __documentation__ = "https://seacogs.coastalcommits.com/backup/" def __init__(self, bot: Red): @@ -35,9 +36,9 @@ class Backup(commands.Cog): n = "\n" if "\n\n" not in pre_processed else "" text = [ f"{pre_processed}{n}", - f"Cog Version: **{self.__version__}**", - f"Author: {humanize_list(self.__author__)}", - f"Documentation: {self.__documentation__}", + f"{bold('Cog Version:')} [{self.__version__}]({self.__git__})", + f"{bold('Author:')} {humanize_list(self.__author__)}", + f"{bold('Documentation:')} {self.__documentation__}", ] return "\n".join(text) diff --git a/bible/bible.py b/bible/bible.py index 10cc953..0cfdb3c 100644 --- a/bible/bible.py +++ b/bible/bible.py @@ -15,7 +15,7 @@ from PIL import Image from red_commons.logging import getLogger from redbot.core import Config, commands, data_manager from redbot.core.bot import Red -from redbot.core.utils.chat_formatting import error, humanize_list +from redbot.core.utils.chat_formatting import bold, error, humanize_list import bible.errors from bible.models import Version @@ -24,9 +24,10 @@ from bible.models import Version class Bible(commands.Cog): """Retrieve Bible verses from the API.bible API.""" - __author__ = ["SeaswimmerTheFsh"] - __version__ = "1.1.0" - __documentation__ = "https://seacogs.coastalcommits.com/bible/" + __author__ = ["[cswimr](https://www.coastalcommits.com/cswimr)"] + __git__ = "https://www.coastalcommits.com/cswimr/SeaCogs" + __version__ = "1.1.1" + __documentation__ = "https://seacogs.coastalcommits.com/pterodactyl/" def __init__(self, bot: Red): super().__init__() @@ -44,12 +45,13 @@ class Bible(commands.Cog): n = "\n" if "\n\n" not in pre_processed else "" text = [ f"{pre_processed}{n}", - f"Cog Version: **{self.__version__}**", - f"Author: {humanize_list(self.__author__)}", - f"Documentation: {self.__documentation__}", + f"{bold('Cog Version:')} [{self.__version__}]({self.__git__})", + f"{bold('Author:')} {humanize_list(self.__author__)}", + f"{bold('Documentation:')} {self.__documentation__}", ] return "\n".join(text) + def get_icon(self, color: Colour) -> File: """Get the docs.api.bible favicon with a given color.""" image_path = data_manager.bundled_data_path(self) / "api.bible-logo.png" diff --git a/emojiinfo/emojiinfo.py b/emojiinfo/emojiinfo.py index 7413e6e..3dd8188 100644 --- a/emojiinfo/emojiinfo.py +++ b/emojiinfo/emojiinfo.py @@ -1,5 +1,4 @@ import io -from typing import Any, Literal import aiohttp import discord @@ -15,9 +14,10 @@ from .model import PartialEmoji class EmojiInfo(commands.Cog): """Retrieve information about emojis.""" - __author__: list[str] = ["SeaswimmerTheFsh"] - __version__: str = "1.0.0" - __documentation__: str = "https://seacogs.coastalcommits.com/emojiinfo/" + __author__ = ["[cswimr](https://www.coastalcommits.com/cswimr)"] + __git__ = "https://www.coastalcommits.com/cswimr/SeaCogs" + __version__ = "1.0.1" + __documentation__ = "https://seacogs.coastalcommits.com/emojiinfo/" def __init__(self, bot: Red) -> None: super().__init__() @@ -25,16 +25,17 @@ class EmojiInfo(commands.Cog): self.logger: RedTraceLogger = getLogger(name="red.SeaCogs.Emoji") def format_help_for_context(self, ctx: commands.Context) -> str: - pre_processed: Any | Literal[''] = super().format_help_for_context(ctx) or "" - n: Literal['\n'] | Literal[''] = "\n" if "\n\n" not in pre_processed else "" - text: list[str] = [ + pre_processed = super().format_help_for_context(ctx) or "" + n = "\n" if "\n\n" not in pre_processed else "" + text = [ f"{pre_processed}{n}", - f"Cog Version: **{self.__version__}**", - f"Author: {humanize_list(items=self.__author__)}", - f"Documentation: {self.__documentation__}", + f"{bold('Cog Version:')} [{self.__version__}]({self.__git__})", + f"{bold('Author:')} {humanize_list(self.__author__)}", + f"{bold('Documentation:')} {self.__documentation__}", ] return "\n".join(text) + async def fetch_twemoji(self, unicode_emoji) -> str: base_url = "https://cdn.jsdelivr.net/gh/jdecked/twemoji@latest/assets/72x72/" emoji_codepoint = "-".join([hex(ord(char))[2:] for char in unicode_emoji]) diff --git a/nerdify/nerdify.py b/nerdify/nerdify.py index 76307b1..f5e92b5 100644 --- a/nerdify/nerdify.py +++ b/nerdify/nerdify.py @@ -12,13 +12,15 @@ from typing import Any, Optional, Union import discord from redbot.core import commands from redbot.core.utils import chat_formatting, common_filters +from redbot.core.utils.chat_formatting import bold, humanize_list class Nerdify(commands.Cog): """Nerdify your text.""" - __author__ = ["SeaswimmerTheFsh"] - __version__ = "1.3.4" + __author__ = ["[cswimr](https://www.coastalcommits.com/cswimr)"] + __git__ = "https://www.coastalcommits.com/cswimr/SeaCogs" + __version__ = "1.3.5" __documentation__ = "https://seacogs.coastalcommits.com/nerdify/" def __init__(self, bot): @@ -29,12 +31,13 @@ class Nerdify(commands.Cog): n = "\n" if "\n\n" not in pre_processed else "" text = [ f"{pre_processed}{n}", - f"Cog Version: **{self.__version__}**", - f"Author: {chat_formatting.humanize_list(self.__author__)}", - f"Documentation: {self.__documentation__}" + f"{bold('Cog Version:')} [{self.__version__}]({self.__git__})", + f"{bold('Author:')} {humanize_list(self.__author__)}", + f"{bold('Documentation:')} {self.__documentation__}", ] return "\n".join(text) + @commands.command(aliases=["nerd"]) async def nerdify( self, ctx: commands.Context, *, text: Optional[str] = None diff --git a/pterodactyl/pterodactyl.py b/pterodactyl/pterodactyl.py index c86c949..fc49e3f 100644 --- a/pterodactyl/pterodactyl.py +++ b/pterodactyl/pterodactyl.py @@ -46,6 +46,23 @@ class Pterodactyl(commands.Cog): ] return "\n".join(text) + async def cog_load(self) -> None: + pterodactyl_keys = await self.bot.get_shared_api_tokens("pterodactyl") + api_key = pterodactyl_keys.get("api_key") + if api_key is None: + self.task.cancel() + raise ValueError("Pterodactyl API key not set. Please set it using `[p]set api`.") + base_url = await config.base_url() + if base_url is None: + self.task.cancel() + raise ValueError("Pterodactyl base URL not set. Please set it using `[p]pterodactyl config url`.") + server_id = await config.server_id() + if server_id is None: + self.task.cancel() + raise ValueError("Pterodactyl server ID not set. Please set it using `[p]pterodactyl config serverid`.") + + self.client = PterodactylClient(base_url, api_key).client + async def cog_unload(self) -> None: self.update_topic.cancel() self.task.cancel() diff --git a/seautils/seautils.py b/seautils/seautils.py index 5485dcc..a895c35 100644 --- a/seautils/seautils.py +++ b/seautils/seautils.py @@ -38,22 +38,26 @@ def format_rfc_text(text: str, number: int) -> str: class SeaUtils(commands.Cog): """A collection of random utilities.""" - __author__ = ["SeaswimmerTheFsh"] - __version__ = "1.0.0" + __author__ = ["[cswimr](https://www.coastalcommits.com/cswimr)"] + __git__ = "https://www.coastalcommits.com/cswimr/SeaCogs" + __version__ = "1.0.1" + __documentation__ = "https://seacogs.coastalcommits.com/seautils/" def __init__(self, bot: Red) -> None: self.bot = bot def format_help_for_context(self, ctx: commands.Context) -> str: - pre_processed = super().format_help_for_context(ctx=ctx) or "" + pre_processed = super().format_help_for_context(ctx) or "" n = "\n" if "\n\n" not in pre_processed else "" text = [ f"{pre_processed}{n}", - f"Cog Version: **{self.__version__}**", - f"Author: {cf.humanize_list(items=self.__author__)}" + f"{cf.bold('Cog Version:')} [{self.__version__}]({self.__git__})", + f"{cf.bold('Author:')} {cf.humanize_list(self.__author__)}", + f"{cf.bold('Documentation:')} {self.__documentation__}", ] return "\n".join(text) + def format_src(self, obj: Any) -> str: """A large portion of this code is repurposed from Zephyrkul's RTFS cog. https://github.com/Zephyrkul/FluffyCogs/blob/master/rtfs/rtfs.py"""