"""
|
|
Simple python script to run on bash start up.
|
|
This will print a welcome message and then a random quote from a text file
|
|
|
|
9-27-17
|
|
Jeffery Russell
|
|
"""
|
|
|
|
import random
|
|
import sys
|
|
import os.path
|
|
|
|
import glob
|
|
|
|
from utils import module
|
|
from utils import print_message_bubble
|
|
import configuration
|
|
|
|
|
|
"""Path to a text file containing quotes"""
|
|
INPUT_FILE = configuration.get_config()["quotes"]
|
|
|
|
"""Pulls a list of the ascii art file names"""
|
|
BASE_FILE = os.path.dirname(os.path.realpath(__file__))
|
|
ASCII_ART = glob.glob(BASE_FILE + "/asciiArt/*.txt")
|
|
|
|
|
|
def print_message(message, ascii_file = None):
|
|
"""
|
|
Prints a dialog box with a message in it with an ascii
|
|
animal below it
|
|
:param message: a quote to print
|
|
:param ascii_file: the file location of the ascii art speaking the message
|
|
:return: NA
|
|
"""
|
|
print_message_bubble.print_message(message)
|
|
if ascii_file != None:
|
|
filepath = '/'.join(INPUT_FILE.split('/')[:-1])
|
|
filepath += "/asciiArt/" + ascii_file
|
|
if (os.path.exists(filepath)):
|
|
f = open(filepath, 'r')
|
|
print(f.read())
|
|
f.close()
|
|
else:
|
|
print(module.input_file_with_new_line(
|
|
ASCII_ART[random.randint(0,(len(ASCII_ART) -1))]))
|
|
else:
|
|
print(module.input_file_with_new_line(
|
|
ASCII_ART[random.randint(0,(len(ASCII_ART) -1))]))
|
|
|
|
|
|
def print_usage():
|
|
"""
|
|
Prints the usage message to the terminal
|
|
:return: None
|
|
"""
|
|
print("Usage:")
|
|
print("\t-a quote \t: Adds a quote to the quotes list")
|
|
print("\t-h \t\t: Prints usage message")
|
|
|
|
|
|
def add_quote():
|
|
"""
|
|
Adds the quote in the command line arguments
|
|
to the quotes text file
|
|
:return: None
|
|
"""
|
|
quote = ""
|
|
|
|
for i in range(2, len(sys.argv)):
|
|
quote = quote + sys.argv[i]
|
|
quote = quote + " "
|
|
|
|
print("added " + quote + "to " + INPUT_FILE)
|
|
module.append_file(INPUT_FILE, quote)
|
|
|
|
|
|
def main():
|
|
"""
|
|
This function calls the welcome function, then it calls the cowsay
|
|
function with a random quote.
|
|
:return: None
|
|
"""
|
|
if len(sys.argv) > 1:
|
|
if sys.argv[1].lower() == "-h" or sys.argv[1].lower() == "-help":
|
|
print_usage()
|
|
elif sys.argv[1].lower() == "-a":
|
|
if len(sys.argv) > 2:
|
|
add_quote()
|
|
else:
|
|
print("You forgot to enter a quote.")
|
|
elif sys.argv[1][:2] == "--":
|
|
quotes = module.input_file(INPUT_FILE)
|
|
print_message(quotes[random.randint(0,(len(quotes) -1))], ascii_file=sys.argv[1][2:]+'.txt')
|
|
else:
|
|
print_usage()
|
|
else:
|
|
quotes = module.input_file(INPUT_FILE)
|
|
|
|
if len(quotes) == 0:
|
|
print("Quotes file : " + INPUT_FILE + " is empty.")
|
|
else:
|
|
print_message(quotes[random.randint(0,(len(quotes) -1))])
|
|
|
|
|
|
"""
|
|
Makes sure that other programs don't execute the main
|
|
"""
|
|
if __name__ == '__main__':
|
|
try:
|
|
main()
|
|
except KeyboardInterrupt:
|
|
exit()
|