aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar brad90four <[email protected]>2021-09-07 12:51:45 -0400
committerGravatar Chris Lovering <[email protected]>2021-10-05 16:41:43 +0100
commita97803d05ecadf6621f943c068000f0997c4704a (patch)
treef137ced471b50108ce514ac7ceeacc08a31de091
parentAdd embed fields for Hex and RGB (diff)
Update code to use 'mode' variable
Updated the code to parse user_input depending on the color code 'mode' passed to the command. Added stub code for future color codes and embeds if mode is None or wrong code.
-rw-r--r--bot/exts/utilities/color.py59
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: