Created
July 20, 2021 16:00
-
-
Save Nastaliss/c9374fff85f42d509dadd97c395346ef to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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