Skip to content

Instantly share code, notes, and snippets.

@Nastaliss
Created July 20, 2021 16:00
Show Gist options
  • Save Nastaliss/c9374fff85f42d509dadd97c395346ef to your computer and use it in GitHub Desktop.
Save Nastaliss/c9374fff85f42d509dadd97c395346ef to your computer and use it in GitHub Desktop.
from enum import Enum
import sys
from typing import Tuple
class LetterColor(Enum):
WHITE = 'white'
YELLOW = 'yellow'
class SentenceColor(Enum):
WHITE = 'white'
YELLOW = 'yellow'
ALTERNATE = 'alternate'
def slackify_character(character: str, color: LetterColor) ->Tuple[str, int]:
if not character.isalpha():
return character, 0
return f':alphabet-{color.value}-{character}:', 1
def slackify_sentence(sentence: str, color: SentenceColor) -> str:
slackified_sentence = ''
emoji_index = 0
for index, character in enumerate(sentence):
if color == SentenceColor.ALTERNATE:
letter_color = (LetterColor.WHITE if emoji_index%2 else LetterColor.YELLOW)
else:
letter_color = color
slackified_character, was_emoji = slackify_character(character, letter_color)
slackified_sentence += slackified_character
emoji_index += was_emoji
return slackified_sentence
if __name__ == '__main__':
color = None
sentence = None
try:
color = sys.argv[1]
sentence = sys.argv[2]
except IndexError:
pass
while color not in ['W', 'Y', 'A']:
color = input('[W]hite, [Y]ellow or [A]lternate:\n').capitalize()
if color == 'W':
color = SentenceColor.WHITE
elif color == 'Y':
color = SentenceColor.YELLOW
else:
color = SentenceColor.ALTERNATE
if sentence is None:
sentence = input ('Enter the text you want to write:\n')
print(slackify_sentence(sentence, color))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment