Как видно из названия, это то, что я пытаюсь сделать здесь. Краткое объяснение о M C MOTD: § + что-то = цвет (§0 = черный, §a = зеленый e cc. Больше объяснений: https://imgur.com/a/NkJtaRQ)
Решение я придумал вот что:
RESET = '\033[0m'
def get_color_escape(r, g, b, bg=False):
return '\033[{};2;{};{};{}m'.format(48 if bg else 38, r, g, b)
, чтобы получить правильные коды перехода. После этого я объявил эту другую функцию, чтобы помочь мне разделить es c .codes:
def charToCode(a):
a = a + 1
styleMap = {
"§0" : get_color_escape(0,0,0),
"§1" : get_color_escape(0,0,170),
"§2" : get_color_escape(0,170,0),
"§3" : get_color_escape(0,170,170),
"§4" : get_color_escape(170,0,0),
"§5" : get_color_escape(170,0,170),
"§6" : get_color_escape(255,170,0),
"§7" : get_color_escape(170,170,170),
"§8" : get_color_escape(85,85,85),
"§9" : get_color_escape(85,85,255),
"§a" : get_color_escape(85,255,85),
"§b" : get_color_escape(85,85,255),
"§c" : get_color_escape(255,85,85),
"§d" : get_color_escape(255,85,255),
"§e" : get_color_escape(255,255,85),
"§f" : get_color_escape(255,255,255),
"§l" : RESET,
"§m" : RESET,
"§n" : RESET,
"§o" : RESET
}
return styleMap.get(str(a))
После получения ответа от API мне нужно преобразовать это «что-то» в правильный цвет строки в терминале. Вот мое решение:
for char in motd:
motdparsed = motd.translate({ord("§"):charToCode(motd.find("§"))})
Проблема в том, что я не могу понять, почему параметр "a" в функции charToCode не может быть принят методом get; и даже если бы это сработало, я не знаю, работает ли это.