user setting checks

master
endorphant 2016-05-01 18:26:26 -04:00
parent 5f3085c337
commit 7f1b9e1480
2 changed files with 102 additions and 26 deletions

View File

@ -1,6 +1,7 @@
#!/usr/bin/python #!/usr/bin/python
import os import os
import chatter
SOURCE = os.path.join("/home", "endorphant", "projects", "ttbp", "bin") SOURCE = os.path.join("/home", "endorphant", "projects", "ttbp", "bin")
USER = os.path.basename(os.path.expanduser("~")) USER = os.path.basename(os.path.expanduser("~"))
@ -11,6 +12,10 @@ WWW = os.path.join(PATH, "www")
CONFIG = os.path.join(PATH, "config") CONFIG = os.path.join(PATH, "config")
DATA = os.path.join(PATH, "entries") DATA = os.path.join(PATH, "entries")
HEADER = ""
FOOTER = ""
FILES = []
MONTHS = { MONTHS = {
"01":"january", "01":"january",
"02":"february", "02":"february",
@ -26,20 +31,21 @@ MONTHS = {
"12":"december" "12":"december"
} }
HEADER = open(os.path.join(CONFIG, "header.txt")).read() def load():
FOOTER = open(os.path.join(CONFIG, "footer.txt")).read() global FILES
global HEADER
global FOOTER
FILES = [] HEADER = open(os.path.join(CONFIG, "header.txt")).read()
FOOTER = open(os.path.join(CONFIG, "footer.txt")).read()
for file in os.listdir(DATA): for file in os.listdir(DATA):
filename = os.path.join(DATA, file) filename = os.path.join(DATA, file)
if os.path.isfile(filename) and os.path.splitext(filename)[1] == ".txt": if os.path.isfile(filename) and os.path.splitext(filename)[1] == ".txt":
FILES.append(file) FILES.append(file)
#print(file)
FILES.sort() FILES.sort()
FILES.reverse() FILES.reverse()
#print("found: "+str(FILES))
def write(outurl="default.html"): def write(outurl="default.html"):
outfile = open(os.path.join(WWW, outurl), "w") outfile = open(os.path.join(WWW, outurl), "w")

View File

@ -9,23 +9,33 @@ import time
#import core #import core
import chatter import chatter
## system globals
SOURCE = os.path.join("/home", "endorphant", "projects", "ttbp", "bin") SOURCE = os.path.join("/home", "endorphant", "projects", "ttbp", "bin")
LIVE = "http://tilde.town/~"
FEEDBACK = os.path.join("/home", "endorphant", "ttbp-mail")
## user globals
USER = os.path.basename(os.path.expanduser("~")) USER = os.path.basename(os.path.expanduser("~"))
PATH = os.path.join("/home", USER, ".ttbp") PATH = os.path.join("/home", USER, ".ttbp")
LIVE = "http://tilde.town/~"
WWW = os.path.join(PATH, "www") WWW = os.path.join(PATH, "www")
CONFIG = os.path.join(PATH, "config") CONFIG = os.path.join(PATH, "config")
DATA = os.path.join(PATH, "entries") DATA = os.path.join(PATH, "entries")
SETTINGS = {
"editor":"vim",
"publish dir":"blog"
}
FEEDBACK = os.path.join("/home", "endorphant", "ttbp-mail") ## ui globals
BANNER = open(os.path.join(SOURCE, "config", "banner.txt")).read() BANNER = open(os.path.join(SOURCE, "config", "banner.txt")).read()
#CLOSER = "\n\tsee you later, space cowboy..."
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"
## ref
EDITORS = ["vim", "vi", "emacs", "pico", "nano"]
SUBJECTS = ["bug report", "feature suggestion", "general comment"]
## ##
def redraw(leftover=""): def redraw(leftover=""):
@ -46,10 +56,10 @@ def start():
redraw() redraw()
print(main_menu()) print(main_menu())
except ValueError or SyntaxError: except ValueError or SyntaxError:
redraw("\n\noh no i didn't understand that") redraw("oh no i didn't understand that. let's go home and start over.")
print(main_menu()) print(main_menu())
except KeyboardInterrupt: except KeyboardInterrupt:
redraw("\n\neject button fired") redraw("eject button fired! going home now.")
print(main_menu()) print(main_menu())
def stop(): def stop():
@ -57,7 +67,15 @@ def stop():
def check_init(): def check_init():
if os.path.exists(os.path.join(os.path.expanduser("~"),".ttbp")): if os.path.exists(os.path.join(os.path.expanduser("~"),".ttbp")):
raw_input("welcome back, "+USER+".\n\npress enter to explore your feelings.\n\n") print("welcome back, "+USER+".")
if not os.path.isfile(os.path.join(CONFIG, "ttbprc")):
print("\nyour ttbp configuration doesn't look right. let's make you a fresh copy.\n\n")
try:
setup()
except KeyboardInterrupt:
print("\n\nsorry, trying again.\n\n")
setup()
raw_input("\n\npress enter to explore your feelings.\n\n")
return "" return ""
else: else:
return init() return init()
@ -66,6 +84,46 @@ def init():
raw_input("i don't recognize you, stranger. let's make friends someday.\n\npress enter to explore some options.\n\n") raw_input("i don't recognize you, stranger. let's make friends someday.\n\npress enter to explore some options.\n\n")
return "" return ""
def setup():
global SETTINGS
# editor selection
print_menu(EDITORS)
choice = raw_input("\npick your favorite text editor: ")
while choice not in ['0', '1', '2', '3', '4']:
choice = raw_input("\nplease pick a number from the list: ")
SETTINGS["editor"] = EDITORS[int(choice)]
print("\ntext editor set to >"+SETTINGS["editor"])
# publish directory selection
choice = raw_input("\n\nwhere do you want your blog published? (leave blank to use default \"blog\") ")
if not choice:
choice = "blog"
publishing = os.path.join("/home", USER, "public_html", choice)
while os.path.exists(publishing):
second = raw_input("\n"+publishing+" already exists!\nif you're sure you want to use it, hit <enter> to confirm. otherwise, pick another location: ")
if second == "":
break
choice = second
publishing = os.path.join("/home", USER, "public_html", choice)
SETTINGS["publish dir"] = choice
# set up publish directory
if not os.path.exists(publishing):
subprocess.call(["mkdir", publishing])
subprocess.call(["touch", os.path.join(publishing, "index.html")])
index = open(os.path.join(publishing, "index.html"), "w")
index.write("<h1>ttbp blog placeholder</h1>")
index.close()
subprocess.call(["rm", WWW])
subprocess.call(["ln", "-s", publishing, WWW])
print("\npublishing to "+LIVE+USER+"/"+SETTINGS["publish dir"]+"/\n\n")
return SETTINGS
## menus ## menus
def print_menu(menu): def print_menu(menu):
@ -83,21 +141,34 @@ def main_menu():
#os.system("clear") #os.system("clear")
#print(BANNER) #print(BANNER)
#redraw() #redraw()
menuOptions = ["record feelings", "check out neighbors","send feedback"] menuOptions = [
"record feelings",
"check out neighbors",
"change settings",
"send feedback",
"see credits"]
#print(SPACER) #print(SPACER)
print("you're at ttbp home now. remember, you can always press ctrl-c to come back here.\n\n") print("you're at ttbp home now. remember, you can always press ctrl-c to come back here.\n\n")
print_menu(menuOptions) print_menu(menuOptions)
#print("how are you feeling today? ") #print("how are you feeling today? ")
choice = raw_input("\ntell me about your feels (enter 'none' to quit): ") try:
choice = raw_input("\ntell me about your feels (enter 'none' to quit): ")
except KeyboardInterrupt:
redraw("eject button fired! going home now.")
return main_menu()
if choice == '0': if choice == '0':
redraw(DUST) redraw(DUST)
elif choice == '1': elif choice == '1':
redraw(DUST) redraw(DUST)
elif choice == '2': elif choice == '2':
redraw(DUST)
elif choice == '3':
redraw() redraw()
feedback_menu() feedback_menu()
elif choice == '4':
redraw(DUST)
elif choice == "none": elif choice == "none":
return stop() return stop()
else: else:
@ -107,14 +178,13 @@ def main_menu():
def feedback_menu(): def feedback_menu():
print("you're about to send mail to ~endorphant about ttbp\n\n") print("you're about to send mail to ~endorphant about ttbp\n\n")
menuOptions = ["bug report", "feature suggestion", "general comment"]
print_menu(menuOptions) print_menu(SUBJECTS)
choice = raw_input("\npick a category for your feedback: ") choice = raw_input("\npick a category for your feedback: ")
cat = "" cat = ""
if choice in ['0', '1', '2']: if choice in ['0', '1', '2']:
cat = menuOptions[int(choice)] cat = SUBJECTS[int(choice)]
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") 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")
redraw(send_feedback(cat)) redraw(send_feedback(cat))
return return
@ -127,7 +197,7 @@ def feedback_menu():
def write_entry(entry=os.path.join(DATA, "test.txt")): def write_entry(entry=os.path.join(DATA, "test.txt")):
subprocess.call(["vim", entry]) subprocess.call([SETTINGS["editor"], entry])
return "wrote to "+entry return "wrote to "+entry
def send_feedback(subject="none", mailbox=os.path.join(FEEDBACK, USER+"-"+str(int(time.time()))+".msg")): def send_feedback(subject="none", mailbox=os.path.join(FEEDBACK, USER+"-"+str(int(time.time()))+".msg")):
@ -135,7 +205,7 @@ def send_feedback(subject="none", mailbox=os.path.join(FEEDBACK, USER+"-"+str(in
mail = "" mail = ""
temp = tempfile.NamedTemporaryFile() temp = tempfile.NamedTemporaryFile()
subprocess.call(['vim', temp.name]) subprocess.call([SETTINGS["editor"], temp.name])
mail = open(temp.name, 'r').read() mail = open(temp.name, 'r').read()
outfile = open(mailbox, 'w') outfile = open(mailbox, 'w')