133 lines
3.9 KiB
Python
133 lines
3.9 KiB
Python
import discord # isort:skip
|
||
import typing # isort:skip
|
||
|
||
from .color import Color
|
||
|
||
|
||
def base_colors_options() -> typing.List[discord.SelectOption]:
|
||
return [
|
||
discord.SelectOption(label="Red", emoji="🟥", value="🟥"),
|
||
discord.SelectOption(label="Orange", emoji="🟧", value="🟧"),
|
||
discord.SelectOption(label="Yellow", emoji="🟨", value="🟨"),
|
||
discord.SelectOption(label="Green", emoji="🟩", value="🟩"),
|
||
discord.SelectOption(label="Blue", emoji="🟦", value="🟦"),
|
||
discord.SelectOption(label="Purple", emoji="🟪", value="🟪"),
|
||
discord.SelectOption(label="Brown", emoji="🟫", value="🟫"),
|
||
discord.SelectOption(label="Black", emoji="⬛", value="⬛"),
|
||
discord.SelectOption(label="White", emoji="⬜", value="⬜"),
|
||
discord.SelectOption(label="Transparent", emoji=None, value="transparent"),
|
||
]
|
||
|
||
|
||
MAIN_COLORS_DICT: typing.Dict[str, Color] = {
|
||
"🟥": Color((255, 0, 0, 255)),
|
||
"🟧": Color((255, 130, 0, 255)),
|
||
"🟨": Color((255, 255, 0, 255)),
|
||
"🟩": Color((0, 255, 0, 255)),
|
||
"🟦": Color((0, 190, 255, 255)),
|
||
"🟪": Color((210, 110, 255, 255)),
|
||
"🟫": Color((200, 100, 80, 255)),
|
||
"⬛": Color((0, 0, 0, 255)),
|
||
"⬜": Color((255, 255, 255, 255)),
|
||
}
|
||
MAIN_COLORS: typing.List[str] = list(MAIN_COLORS_DICT.keys()) + ["transparent"]
|
||
|
||
MIN_HEIGHT_OR_WIDTH: int = 5
|
||
MAX_HEIGHT_OR_WIDTH: int = 17
|
||
|
||
|
||
def base_height_or_width_select_options(
|
||
prefix: typing.Optional[str] = "",
|
||
) -> typing.List[discord.SelectOption]:
|
||
return [
|
||
discord.SelectOption(label=f"{f'{prefix} = ' if prefix else prefix}{n}", value=n)
|
||
for n in range(MIN_HEIGHT_OR_WIDTH, MAX_HEIGHT_OR_WIDTH + 1)
|
||
]
|
||
|
||
|
||
ROW_ICONS_DICT: typing.Dict[str, int] = {
|
||
"🇦": 799628816846815233,
|
||
"🇧": 799628882713509891,
|
||
"🇨": 799620822716383242,
|
||
"🇩": 799621070319255572,
|
||
"🇪": 799621103030894632,
|
||
"🇫": 799621133174571008,
|
||
"🇬": 799621170450137098,
|
||
"🇭": 799621201621811221,
|
||
"🇮": 799621235226050561,
|
||
"🇯": 799621266842583091,
|
||
"🇰": 799621296408887357,
|
||
"🇱": 799621320408301638,
|
||
"🇲": 799621344740114473,
|
||
"🇳": 799621367297343488,
|
||
"🇴": 799628923260370945,
|
||
"🇵": 799621387219369985,
|
||
"🇶": 799621417049260042,
|
||
}
|
||
ROW_ICONS = list(ROW_ICONS_DICT.keys())
|
||
COLUMN_ICONS_DICT: typing.Dict[typing.Union[str, int], int] = {
|
||
"0️⃣": 1000010892500537437,
|
||
"1️⃣": 1000010893981143040,
|
||
"2️⃣": 1000010895331692555,
|
||
"3️⃣": 1000010896946499614,
|
||
"4️⃣": 1000010898213195937,
|
||
"5️⃣": 1000010899714740224,
|
||
"6️⃣": 1000010901744791653,
|
||
"7️⃣": 1000010902726262857,
|
||
"8️⃣": 1000010904240402462,
|
||
"9️⃣": 1000010905276403773,
|
||
"🔟": 1000011148537626624,
|
||
1032564324281098240: 1000011153226874930,
|
||
1032564339946823681: 1000011154262851634,
|
||
1032564356380098630: 1000011155391131708,
|
||
1032564734609862696: 1000011156787834970,
|
||
1032564783850983464: 1000011158348120125,
|
||
1032564935412174868: 1000011159623192616,
|
||
}
|
||
COLUMN_ICONS = list(COLUMN_ICONS_DICT.keys())
|
||
|
||
LETTER_TO_NUMBER: typing.Dict[str, int] = {
|
||
"A": 0,
|
||
"B": 1,
|
||
"C": 2,
|
||
"D": 3,
|
||
"E": 4,
|
||
"F": 5,
|
||
"G": 6,
|
||
"H": 7,
|
||
"I": 8,
|
||
"J": 9,
|
||
"K": 10,
|
||
"L": 11,
|
||
"M": 12,
|
||
"N": 13,
|
||
"O": 14,
|
||
"P": 15,
|
||
"Q": 16,
|
||
"R": 17,
|
||
"S": 18,
|
||
"T": 19,
|
||
"U": 20,
|
||
"V": 21,
|
||
"W": 22,
|
||
"X": 23,
|
||
"Y": 24,
|
||
"Z": 25,
|
||
}
|
||
ALPHABETS: typing.Tuple[str] = tuple(LETTER_TO_NUMBER.keys())
|
||
NUMBERS: typing.Tuple[int] = tuple(LETTER_TO_NUMBER.values())
|
||
|
||
u200b: str = "\u200b"
|
||
PADDING: str = f" {u200b}" * 6
|
||
LB: str = "\n"
|
||
|
||
DEFAULT_CACHE: typing.List[typing.Union[str, int]] = (
|
||
list(MAIN_COLORS_DICT.keys())
|
||
+ list(MAIN_COLORS_DICT.values())
|
||
+ ROW_ICONS
|
||
+ COLUMN_ICONS
|
||
+ list(ROW_ICONS_DICT.values())
|
||
+ list(COLUMN_ICONS_DICT.values())
|
||
)
|
||
|
||
IMAGE_EXTENSION = "PNG"
|