|
|
@ -1,119 +0,0 @@ |
|
|
|
""" |
|
|
|
Python script that prints an ascii roo with a message above it |
|
|
|
Jeffery Russell |
|
|
|
10-8-17 |
|
|
|
""" |
|
|
|
|
|
|
|
import sys |
|
|
|
|
|
|
|
from utils import print_message_bubble |
|
|
|
|
|
|
|
|
|
|
|
def main(): |
|
|
|
""" |
|
|
|
checks for command line arguments |
|
|
|
:return: None |
|
|
|
""" |
|
|
|
message = "" |
|
|
|
for i in range(1, len(sys.argv)): |
|
|
|
if len(message) > 0: |
|
|
|
message += " " |
|
|
|
message += sys.argv[i] |
|
|
|
|
|
|
|
if len(message) == 0: |
|
|
|
for line in sys.stdin: |
|
|
|
message+= line |
|
|
|
|
|
|
|
message = " ".join(message.split()) |
|
|
|
roo_say(message) |
|
|
|
|
|
|
|
|
|
|
|
def roo_say(message): |
|
|
|
""" |
|
|
|
Method which prints an ascii roo with a message above it |
|
|
|
:param message: the message to print |
|
|
|
:return: none |
|
|
|
""" |
|
|
|
print_message_bubble.print_message(message) |
|
|
|
#print_message(message) |
|
|
|
print_roo() |
|
|
|
|
|
|
|
|
|
|
|
def print_message(message): |
|
|
|
""" |
|
|
|
Prints the message above Roo |
|
|
|
:param message: the message to print |
|
|
|
:return: None |
|
|
|
""" |
|
|
|
print_list, max_len = convert_to_list(message) |
|
|
|
|
|
|
|
if len(print_list) > 0: |
|
|
|
"Print top" |
|
|
|
print(" " + "-" * (2 + max_len)) |
|
|
|
|
|
|
|
"print middle" |
|
|
|
if len(print_list) == 1: |
|
|
|
print("< " + print_list[0] + " >") |
|
|
|
else: |
|
|
|
for i in range(0, len(print_list)): |
|
|
|
if i == 0: |
|
|
|
print("/ " + print_list[i] |
|
|
|
+ " " * (max_len - len(print_list[i])) +" \\") |
|
|
|
elif i == len(print_list) -1: |
|
|
|
print("\ " + print_list[i] |
|
|
|
+ " " * (max_len - len(print_list[i])) + " /") |
|
|
|
else: |
|
|
|
print("| " + print_list[i] |
|
|
|
+ " " * (max_len - len(print_list[i])) + " |") |
|
|
|
"print bottom" |
|
|
|
print(" " + "-" * (max_len + 2)) |
|
|
|
else: |
|
|
|
print("Please pass in a message parameter") |
|
|
|
|
|
|
|
|
|
|
|
def convert_to_list(message): |
|
|
|
""" |
|
|
|
Converts the message into string lines which are |
|
|
|
less than 35 characters - easier for printing |
|
|
|
:param message: the string message |
|
|
|
:return: the list of the string lines and the length of the longest line |
|
|
|
""" |
|
|
|
temp_build = "" |
|
|
|
temp_return = [] |
|
|
|
max_len = 0 |
|
|
|
for word in message.split(" "): |
|
|
|
if len(temp_build) + len(word) < 35: |
|
|
|
if len(temp_build) > 0: |
|
|
|
temp_build += " " |
|
|
|
temp_build += word |
|
|
|
if max_len < len(temp_build): |
|
|
|
max_len = len(temp_build) |
|
|
|
else: |
|
|
|
temp_return.append(temp_build) |
|
|
|
temp_build = word |
|
|
|
if len(temp_build) > 0: |
|
|
|
temp_return.append(temp_build) |
|
|
|
return temp_return, max_len |
|
|
|
|
|
|
|
|
|
|
|
def print_roo(): |
|
|
|
""" |
|
|
|
prints the roo ascii |
|
|
|
:return: None |
|
|
|
""" |
|
|
|
print("") |
|
|
|
print(" \ /)/)") |
|
|
|
print(" \ (ø.ø)") |
|
|
|
print(" \ ( />") |
|
|
|
print(" __/ _\ //") |
|
|
|
print(" '~( '~ )//") |
|
|
|
print(" _\ '}/") |
|
|
|
print(" \"--~(/") |
|
|
|
|
|
|
|
|
|
|
|
""" |
|
|
|
If ran from command line, this will call the main which |
|
|
|
looks for command line arguments |
|
|
|
""" |
|
|
|
if __name__ == '__main__': |
|
|
|
main() |