diff options
-rw-r--r-- | bot/exts/utilities/color.py | 59 |
1 files changed, 46 insertions, 13 deletions
diff --git a/bot/exts/utilities/color.py b/bot/exts/utilities/color.py index b1b423e7..1efacead 100644 --- a/bot/exts/utilities/color.py +++ b/bot/exts/utilities/color.py @@ -10,7 +10,7 @@ from discord.ext import commands # from rapidfuzz import process from bot.bot import Bot -# from bot.constants import Colours +from bot.constants import Colours logger = logging.getLogger(__name__) @@ -33,13 +33,12 @@ class Color(commands.Cog): self.bot = bot @commands.command(aliases=["colour"]) - @commands.cooldown(1, 10, commands.cooldowns.BucketType.user) - async def color(self, ctx: commands.Context, *, user_color: str) -> None: + async def color(self, ctx: commands.Context, mode: str, user_color: str) -> None: """Send information on input color code or color name.""" # need to check if user_color is RGB, HSV, CMYK, HSL, Hex or color name # should we assume the color is RGB if not defined? - if "#" in user_color: + if mode.lower() == "hex": logger.info(f"{user_color = }") hex_match = re.search(r"^#(?:[0-9a-fA-F]{3}){1,2}$", user_color) if hex_match: @@ -55,15 +54,32 @@ class Color(commands.Cog): ) ) - elif "RGB" or "rgb" in user_color: - rgb_parse = user_color.split() - rgb = rgb_parse[1:].replace(", ", "") - logger.info(f"{rgb = }") - logger.info(f"{rgb[0] = }") - logger.info(f"{rgb[1] = }") - logger.info(f"{rgb[2] = }") - rgb_color = tuple(rgb) - hex_color = f"0x{int(rgb[0]):02x}{int(rgb[1]):02x}{int(rgb[2]):02x}" + elif mode.lower() == "rgb": + logger.info(f"{user_color = }") + # rgb_color = user_color + + elif mode.lower() == "hsv": + pass + elif mode.lower() == "hsl": + pass + elif mode.lower() == "cmyk": + pass + else: + # mode is either None or an invalid code + if mode is None: + no_mode_embed = Embed( + title="No 'mode' was passed, please define a color code.", + color=Colours.soft_red, + ) + await ctx.send(embed=no_mode_embed) + return + wrong_mode_embed = Embed( + title=f"The color code {mode} is not a valid option", + description="Possible modes are: Hex, RGB, HSV, HSL and CMYK.", + color=Colours.soft_red, + ) + await ctx.send(embed=wrong_mode_embed) + return main_embed = Embed( title=user_color, # need to replace with fuzzymatch color name @@ -83,6 +99,23 @@ class Color(commands.Cog): value=f">>RGB {rgb_color}", inline=False, ) + """ + main_embed.add_field( + name="HSV", + value=f">>HSV {hsv_color}", + inline=False, + ) + main_embed.add_field( + name="HSL", + value=f">>HSL {hsl_color}", + inline=False, + ) + main_embed.add_field( + name="CMYK", + value=f">>CMYK {cmyk_color}", + inline=False, + ) + """ await ctx.send(file=file, embed=main_embed) async def _create_thumbnail_attachment(self, color: str) -> File: |