forked from endorphant/ttbp
		
	color and code cleanup
added color generation to banner! converting more static text to here docs.
This commit is contained in:
		
							parent
							
								
									cbbdb1e8b7
								
							
						
					
					
						commit
						8825debf96
					
				
							
								
								
									
										93
									
								
								bin/_ttbp.py
									
									
									
									
									
								
							
							
						
						
									
										93
									
								
								bin/_ttbp.py
									
									
									
									
									
								
							| @ -35,7 +35,7 @@ SETTINGS = { | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| ## ui globals | ## ui globals | ||||||
| BANNER = open(os.path.join(SOURCE, "config", "banner.txt")).read() | BANNER = util.attach_rainbow()+open(os.path.join(SOURCE, "config", "banner.txt")).read()+util.attach_reset() | ||||||
| SPACER = "\n\n\n" | SPACER = "\n\n\n" | ||||||
| INVALID = "please pick a number from the list of options!\n\n" | INVALID = "please pick a number from the list of options!\n\n" | ||||||
| DUST = "sorry about the dust, but this part is still under construction. check back later!\n\n" | DUST = "sorry about the dust, but this part is still under construction. check back later!\n\n" | ||||||
| @ -61,7 +61,11 @@ def start(): | |||||||
|   redraw() |   redraw() | ||||||
|   #print(chatter.say("greet")+", "+chatter.say("friend")) |   #print(chatter.say("greet")+", "+chatter.say("friend")) | ||||||
|   #print("(remember, you can always press ctrl-c to come home)\n") |   #print("(remember, you can always press ctrl-c to come home)\n") | ||||||
|   print("if you don't want to be here at any point, press <ctrl-d> and it'll all go away.\njust keep in mind that you might lose anything you've started here.\n") |   print(""" | ||||||
|  | if you don't want to be here at any point, press <ctrl-d> and it'll all go away. | ||||||
|  | just keep in mind that you might lose anything you've started here.\ | ||||||
|  | """) | ||||||
|  | 
 | ||||||
|   try: |   try: | ||||||
|     print(check_init()) |     print(check_init()) | ||||||
|   except EOFError: |   except EOFError: | ||||||
| @ -104,7 +108,11 @@ def check_init(): | |||||||
| 
 | 
 | ||||||
| def init(): | def init(): | ||||||
|     try: |     try: | ||||||
|         raw_input("i don't recognize you, stranger. let's make friends.\n\npress <enter> to begin, or <ctrl-c> to get out of here. \n\n") |         raw_input(""" | ||||||
|  | i don't recognize you, stranger. let's make friends. | ||||||
|  | 
 | ||||||
|  | press <enter> to begin, or <ctrl-c> to get out of here. | ||||||
|  |         """) | ||||||
|     except KeyboardInterrupt: |     except KeyboardInterrupt: | ||||||
|         print("\n\nthanks for checking in! i'll always be here.\n\n") |         print("\n\nthanks for checking in! i'll always be here.\n\n") | ||||||
|         quit() |         quit() | ||||||
| @ -115,12 +123,13 @@ def init(): | |||||||
|     subprocess.call(["mkdir", PATH]) |     subprocess.call(["mkdir", PATH]) | ||||||
|     subprocess.call(["mkdir", CONFIG]) |     subprocess.call(["mkdir", CONFIG]) | ||||||
|     subprocess.call(["mkdir", DATA]) |     subprocess.call(["mkdir", DATA]) | ||||||
|     #subprocess.call(["cp", os.path.join(SOURCE, "config", "defaults", "header.txt"), CONFIG]) | 
 | ||||||
|     header = gen_header() |     header = gen_header() | ||||||
|     headerfile = open(os.path.join(CONFIG, "header.txt"), 'w') |     headerfile = open(os.path.join(CONFIG, "header.txt"), 'w') | ||||||
|     for line in header: |     for line in header: | ||||||
|         headerfile.write(line) |         headerfile.write(line) | ||||||
|     headerfile.close() |     headerfile.close() | ||||||
|  | 
 | ||||||
|     subprocess.call(["cp", os.path.join(SOURCE, "config", "defaults", "footer.txt"), CONFIG]) |     subprocess.call(["cp", os.path.join(SOURCE, "config", "defaults", "footer.txt"), CONFIG]) | ||||||
| 
 | 
 | ||||||
|     setup() |     setup() | ||||||
| @ -131,21 +140,41 @@ def init(): | |||||||
|     return "" |     return "" | ||||||
| 
 | 
 | ||||||
| def gen_header(): | def gen_header(): | ||||||
|     header = [] |     #header = [] | ||||||
| 
 | 
 | ||||||
|     header.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 3.2//EN\">") |     #header.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 3.2//EN\">") | ||||||
|     header.append("\n<html>") |     #header.append("\n<html>") | ||||||
|     header.append("\n\t<head>") |     #header.append("\n\t<head>") | ||||||
|     header.append("\n\t\t<title>~"+USER+" on TTBP</title>") |     #header.append("\n\t\t<title>~"+USER+" on TTBP</title>") | ||||||
|     header.append("\n\t\t<link rel=\"stylesheet\" href=\"style.css\" />") |     #header.append("\n\t\t<link rel=\"stylesheet\" href=\"style.css\" />") | ||||||
|     header.append("\n\t</head>") |     #header.append("\n\t</head>") | ||||||
|     header.append("\n\t<body>") |     #header.append("\n\t<body>") | ||||||
|     header.append("\n\t\t<div id=\"meta\">") |     #header.append("\n\t\t<div id=\"meta\">") | ||||||
|     header.append("\n\t\t\t<h1><a href=\"index.html#\">~"+USER+"</a>@<a href=\"/~endorphant/ttbp\">TTBP</a></h1>") |     #header.append("\n\t\t\t<h1><a href=\"index.html#\">~"+USER+"</a>@<a href=\"/~endorphant/ttbp\">TTBP</a></h1>") | ||||||
|     header.append("\n\t\t</div>\n") |     #header.append("\n\t\t</div>\n") | ||||||
|     header.append("\n\t\t<!---put your custom html here-->\n\n\n\n") |     #header.append("\n\t\t<!---put your custom html here-->\n\n\n\n") | ||||||
|     header.append("\n\t\t<!---don't put anything after this line-->\n") |     #header.append("\n\t\t<!---don't put anything after this line-->\n") | ||||||
|     header.append("\n\t\t<div id=\"tlogs\">\n") |     #header.append("\n\t\t<div id=\"tlogs\">\n") | ||||||
|  | 
 | ||||||
|  |     header =""" | ||||||
|  | <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 3.2//EN\"> | ||||||
|  | <html> | ||||||
|  |     <head> | ||||||
|  |         <title>~"""+USER+""" on TTBP</title> | ||||||
|  |         <link rel=\"stylesheet\" href=\"style.css\" /> | ||||||
|  |     </head> | ||||||
|  |     <body> | ||||||
|  |         <div id=\"meta\"> | ||||||
|  |             <h1><a href=\"index.html#\">~"""+USER+"""</a>@<a href=\"/~endorphant/ttbp\">TTBP</a></h1> | ||||||
|  |         </div> | ||||||
|  |      | ||||||
|  |         <!---put your custom html here--> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |         <!---don't put anything after this line--> | ||||||
|  |         <div id=\"tlogs\">\ | ||||||
|  |     """ | ||||||
|     return header |     return header | ||||||
| 
 | 
 | ||||||
| def setup_handler(): | def setup_handler(): | ||||||
| @ -285,7 +314,11 @@ def feedback_menu(): | |||||||
|     cat = "" |     cat = "" | ||||||
|     if choice in ['0', '1', '2', '3']: |     if choice in ['0', '1', '2', '3']: | ||||||
|         cat = SUBJECTS[int(choice)] |         cat = SUBJECTS[int(choice)] | ||||||
|         entered = raw_input("\ncomposing a "+cat+" to ~endorphant.\n\npress <enter> to open an external text editor. mail will be sent once you save and quit.\n") |         entered = raw_input(""" | ||||||
|  | composing a """+cat+""" to ~endorphant. | ||||||
|  | 
 | ||||||
|  | press <enter> to open an external text editor. mail will be sent once you save and quit. | ||||||
|  |         """) | ||||||
|         redraw(send_feedback(entered, cat)) |         redraw(send_feedback(entered, cat)) | ||||||
|         return |         return | ||||||
|     else: |     else: | ||||||
| @ -379,7 +412,15 @@ thanks to everyone who reads, listens, writes, and feels.\ | |||||||
| 
 | 
 | ||||||
| def write_entry(entry=os.path.join(DATA, "test.txt")): | def write_entry(entry=os.path.join(DATA, "test.txt")): | ||||||
| 
 | 
 | ||||||
|     entered = raw_input("\nfeels will be recorded for today, "+time.strftime("%d %B %Y")+".\n\nif you've already started recording feels for this day, you \ncan pick up where you left off.\n\npress <enter> to begin recording your feels.\n\n") |     entered = raw_input(""" | ||||||
|  | feels will be recorded for today, """+time.strftime("%d %B %Y")+""". | ||||||
|  | 
 | ||||||
|  | if you've already started recording feels for this day, you | ||||||
|  | can pick up where you left off. | ||||||
|  | 
 | ||||||
|  | press <enter> to begin recording your feels. | ||||||
|  |     """) | ||||||
|  | 
 | ||||||
|     if entered: |     if entered: | ||||||
|         entryFile = open(entry, "a") |         entryFile = open(entry, "a") | ||||||
|         entryFile.write("\n"+entered+"\n") |         entryFile.write("\n"+entered+"\n") | ||||||
| @ -448,10 +489,8 @@ def view_feed(): | |||||||
|     for townie in find_ttbps(): |     for townie in find_ttbps(): | ||||||
|         entryDir = os.path.join("/home", townie, ".ttbp", "entries") |         entryDir = os.path.join("/home", townie, ".ttbp", "entries") | ||||||
|         filenames = os.listdir(entryDir) |         filenames = os.listdir(entryDir) | ||||||
|  | 
 | ||||||
|         for entry in filenames: |         for entry in filenames: | ||||||
|             ### REALLY MAKE A REAL FILENAME VALIDATOR |  | ||||||
|             #fileSplit = os.path.splitext(entry) |  | ||||||
|             #if len(fileSplit[0]) == 8 and fileSplit[1] == ".txt": |  | ||||||
|             if core.valid(entry): |             if core.valid(entry): | ||||||
|                 feedList.append(os.path.join(entryDir, entry)) |                 feedList.append(os.path.join(entryDir, entry)) | ||||||
| 
 | 
 | ||||||
| @ -473,6 +512,7 @@ def view_feed(): | |||||||
|     redraw() |     redraw() | ||||||
| 
 | 
 | ||||||
|     return |     return | ||||||
|  | 
 | ||||||
| ##### | ##### | ||||||
| 
 | 
 | ||||||
| def find_ttbps(): | def find_ttbps(): | ||||||
| @ -492,13 +532,8 @@ def list_select(options, prompt): | |||||||
|     invalid = True |     invalid = True | ||||||
| 
 | 
 | ||||||
|     while invalid: |     while invalid: | ||||||
|         #try: |  | ||||||
|         #    choice = raw_input("\n\n"+prompt) |  | ||||||
|         #except KeyboardInterrupt: |  | ||||||
|         #    redraw() |  | ||||||
|         #    main_menu() |  | ||||||
| 
 |  | ||||||
|         choice = raw_input("\n\n"+prompt) |         choice = raw_input("\n\n"+prompt) | ||||||
|  | 
 | ||||||
|         if choice in BACKS: |         if choice in BACKS: | ||||||
|             return False |             return False | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										37
									
								
								bin/util.py
									
									
									
									
									
								
							
							
						
						
									
										37
									
								
								bin/util.py
									
									
									
									
									
								
							| @ -3,9 +3,46 @@ | |||||||
| import inflect | import inflect | ||||||
| import time | import time | ||||||
| import random | import random | ||||||
|  | import colorama | ||||||
|  | 
 | ||||||
|  | colorama.init() | ||||||
|  | 
 | ||||||
|  | textcolors = [ colorama.Fore.RED, colorama.Fore.GREEN, colorama.Fore.YELLOW, colorama.Fore.BLUE, colorama.Fore.MAGENTA, colorama.Fore.WHITE, colorama.Fore.CYAN] | ||||||
|  | 
 | ||||||
|  | lastcolor = colorama.Fore.RESET | ||||||
| 
 | 
 | ||||||
| p = inflect.engine() | p = inflect.engine() | ||||||
| 
 | 
 | ||||||
|  | def set_rainbow(): | ||||||
|  |     global lastcolor | ||||||
|  | 
 | ||||||
|  |     color = lastcolor | ||||||
|  |     while color == lastcolor: | ||||||
|  |         color = random.choice(textcolors) | ||||||
|  | 
 | ||||||
|  |     lastcolor = color | ||||||
|  | 
 | ||||||
|  |     print(color) | ||||||
|  | 
 | ||||||
|  | def reset_color(): | ||||||
|  |     print(colorama.Fore.RESET) | ||||||
|  | 
 | ||||||
|  | def attach_rainbow(): | ||||||
|  |     global lastcolor | ||||||
|  | 
 | ||||||
|  |     color = lastcolor | ||||||
|  |     while color == lastcolor: | ||||||
|  |         color = random.choice(textcolors) | ||||||
|  | 
 | ||||||
|  |     lastcolor = color | ||||||
|  |     return color | ||||||
|  | 
 | ||||||
|  | def attach_reset(): | ||||||
|  |     return colorama.Style.RESET_ALL | ||||||
|  | 
 | ||||||
|  | def hilight(text): | ||||||
|  |     return colorama.Style.BRIGHT+text+colorama.Style.NORMAL | ||||||
|  | 
 | ||||||
| def pretty_time(time): | def pretty_time(time): | ||||||
|     m, s = divmod(time, 60) |     m, s = divmod(time, 60) | ||||||
|     if m > 0: |     if m > 0: | ||||||
|  | |||||||
| @ -9,7 +9,6 @@ TO-DO: | |||||||
| 
 | 
 | ||||||
| 	(goals for phase two) | 	(goals for phase two) | ||||||
| 
 | 
 | ||||||
| 	-make feedback actually use mail instead of dumping to a file |  | ||||||
| 	-stylesheet selector | 	-stylesheet selector | ||||||
| 		-and make a couple more custom stylesheets | 		-and make a couple more custom stylesheets | ||||||
| 	-replying to entries?? | 	-replying to entries?? | ||||||
| @ -23,6 +22,10 @@ TO-DO: | |||||||
| 
 | 
 | ||||||
| CHANGELOG: | CHANGELOG: | ||||||
| 
 | 
 | ||||||
|  | ver 0.7.5 | ||||||
|  | 	-COLORFUL BANNER | ||||||
|  | 	-backend stuff; feedback uses sendmail, some code cleanup | ||||||
|  | 
 | ||||||
| ver 0.7 | ver 0.7 | ||||||
| 	-fixed program crashing? maybe? | 	-fixed program crashing? maybe? | ||||||
| 	-added credits | 	-added credits | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user