From fabfbd63dc1055ba28742e7819107fa2b201fb1c Mon Sep 17 00:00:00 2001 From: Chris Lovering Date: Thu, 21 Apr 2022 09:27:50 +0100 Subject: Support color string being when converting to hex code Int he latest version of discord.py Embed colours could be sent to site as hex strings, if set using a discord.Color, rather tha an int. Closes #715 Closes SITE-25 --- pydis_site/apps/staff/templatetags/deletedmessage_filters.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pydis_site/apps/staff/templatetags/deletedmessage_filters.py b/pydis_site/apps/staff/templatetags/deletedmessage_filters.py index 8e14ced6..5026068e 100644 --- a/pydis_site/apps/staff/templatetags/deletedmessage_filters.py +++ b/pydis_site/apps/staff/templatetags/deletedmessage_filters.py @@ -1,4 +1,5 @@ from datetime import datetime +from typing import Union from django import template @@ -6,13 +7,16 @@ register = template.Library() @register.filter -def hex_colour(color: int) -> str: +def hex_colour(colour: Union[str, int]) -> str: """ - Converts an integer representation of a colour to the RGB hex value. + Converts the given representation of a colour to its RGB hex string. As we are using a Discord dark theme analogue, black colours are returned as white instead. """ - colour = f"#{color:0>6X}" + if isinstance(colour, str): + colour = colour if colour.startswith("#") else f"#{colour}" + else: + colour = f"#{colour:0>6X}" return colour if colour != "#000000" else "#FFFFFF" -- cgit v1.2.3