From 1021e747600fd97c0a0aa8fbf353bd8ae89901f7 Mon Sep 17 00:00:00 2001 From: "Azalea (on HyDEV-Daisy)" Date: Sun, 10 Apr 2022 02:25:56 -0400 Subject: [PATCH] [O] Optimize color replacing --- hypy_utils/__init__.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/hypy_utils/__init__.py b/hypy_utils/__init__.py index 8076878..d705657 100644 --- a/hypy_utils/__init__.py +++ b/hypy_utils/__init__.py @@ -1,4 +1,4 @@ -__version__ = "1.0.3" +__version__ = "1.0.4" import dataclasses import hashlib @@ -23,6 +23,13 @@ def ansi_rgb(r: int, g: int, b: int, foreground: bool = True) -> str: return f'\033[{c};2;{r};{g};{b}m' +replacements = ["&0/\033[0;30m", "&1/\033[0;34m", "&2/\033[0;32m", "&3/\033[0;36m", "&4/\033[0;31m", + "&5/\033[0;35m", "&6/\033[0;33m", "&7/\033[0;37m", "&8/\033[1;30m", "&9/\033[1;34m", + "&a/\033[1;32m", "&b/\033[1;36m", "&c/\033[1;31m", "&d/\033[1;35m", "&e/\033[1;33m", + "&f/\033[1;37m", "&r/\033[0m", "&n/\n"] +replacements = [(r[:2], r[3:]) for r in replacements] + + def color(msg: str) -> str: """ Replace extended minecraft color codes in string @@ -30,9 +37,8 @@ def color(msg: str) -> str: :param msg: Message with minecraft color codes :return: Message with escape codes """ - replacements = ["&0/\033[0;30m", "&1/\033[0;34m", "&2/\033[0;32m", "&3/\033[0;36m", "&4/\033[0;31m", "&5/\033[0;35m", "&6/\033[0;33m", "&7/\033[0;37m", "&8/\033[1;30m", "&9/\033[1;34m", "&a/\033[1;32m", "&b/\033[1;36m", "&c/\033[1;31m", "&d/\033[1;35m", "&e/\033[1;33m", "&f/\033[1;37m", "&r/\033[0m", "&n/\n"] - for r in replacements: - msg = msg.replace(r[:2], r[3:]) + for code, esc in replacements: + msg = msg.replace(code, esc) while '&gf(' in msg or '&gb(' in msg: i = msg.index('&gf(') if '&gf(' in msg else msg.index('&gb(')