forked from endorphant/ttbp
color and code cleanup
added color generation to banner! converting more static text to here docs.master
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…
Reference in New Issue