forked from endorphant/ttbp
added permalinks
parent
9b8d321812
commit
0ed42304c8
46
bin/core.py
46
bin/core.py
|
@ -46,10 +46,10 @@ def load_files():
|
||||||
global FILES
|
global FILES
|
||||||
|
|
||||||
FILES = []
|
FILES = []
|
||||||
for file in os.listdir(DATA):
|
for filename in os.listdir(DATA):
|
||||||
filename = os.path.join(DATA, file)
|
filename = os.path.join(DATA, filename)
|
||||||
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(filename)
|
||||||
|
|
||||||
FILES.sort()
|
FILES.sort()
|
||||||
FILES.reverse()
|
FILES.reverse()
|
||||||
|
@ -67,8 +67,9 @@ def write(outurl="default.html"):
|
||||||
|
|
||||||
outfile.write("\n")
|
outfile.write("\n")
|
||||||
|
|
||||||
for file in FILES:
|
for filename in FILES:
|
||||||
for line in write_entry(file):
|
write_page(filename)
|
||||||
|
for line in write_entry(filename):
|
||||||
outfile.write(line)
|
outfile.write(line)
|
||||||
|
|
||||||
outfile.write("\n")
|
outfile.write("\n")
|
||||||
|
@ -80,10 +81,35 @@ def write(outurl="default.html"):
|
||||||
|
|
||||||
return os.path.join(LIVE+USER,os.path.basename(os.path.realpath(WWW)),outurl)
|
return os.path.join(LIVE+USER,os.path.basename(os.path.realpath(WWW)),outurl)
|
||||||
|
|
||||||
def write_entry(file):
|
def write_page(filename):
|
||||||
|
# makes a single permalink page
|
||||||
|
|
||||||
|
outurl = os.path.join(WWW, "".join(parse_date(filename))+".html")
|
||||||
|
outfile = open(outurl, "w")
|
||||||
|
|
||||||
|
outfile.write("<!--generated by the tilde.town blogging platform on "+time.strftime("%d %B %y")+"\nhttp://tilde.town/~endorphant/ttbp/-->\n\n")
|
||||||
|
|
||||||
|
for line in HEADER:
|
||||||
|
outfile.write(line)
|
||||||
|
|
||||||
|
outfile.write("\n")
|
||||||
|
|
||||||
|
for line in write_entry(filename):
|
||||||
|
outfile.write(line)
|
||||||
|
|
||||||
|
outfile.write("\n")
|
||||||
|
|
||||||
|
for line in FOOTER:
|
||||||
|
outfile.write(line)
|
||||||
|
|
||||||
|
outfile.close()
|
||||||
|
|
||||||
|
return outurl
|
||||||
|
|
||||||
|
def write_entry(filename):
|
||||||
# dump given file into entry format, return as list of strings
|
# dump given file into entry format, return as list of strings
|
||||||
|
|
||||||
date = parse_date(file)
|
date = parse_date(filename)
|
||||||
|
|
||||||
entry = [
|
entry = [
|
||||||
"\t\t<p><a name=\""+date[0]+date[1]+date[2]+"\"></a><br /><br /></p>\n",
|
"\t\t<p><a name=\""+date[0]+date[1]+date[2]+"\"></a><br /><br /></p>\n",
|
||||||
|
@ -93,7 +119,7 @@ def write_entry(file):
|
||||||
]
|
]
|
||||||
|
|
||||||
raw = []
|
raw = []
|
||||||
rawfile = open(os.path.join(DATA, file), "r")
|
rawfile = open(os.path.join(DATA, filename), "r")
|
||||||
|
|
||||||
for line in rawfile:
|
for line in rawfile:
|
||||||
raw.append(line)
|
raw.append(line)
|
||||||
|
@ -104,7 +130,9 @@ def write_entry(file):
|
||||||
if line == "\n":
|
if line == "\n":
|
||||||
entry.append("</p>\n\t\t\t<p>")
|
entry.append("</p>\n\t\t\t<p>")
|
||||||
|
|
||||||
entry.append("</p>\n\t\t</div>\n")
|
entry.append("</p>\n")
|
||||||
|
entry.append("\t\t\t<p style=\"font-size:.6em; font-color:#808080; text-align: right;\"><a href=\""+"".join(date)+".html\">permalink</a></p>\n")
|
||||||
|
entry.append("\n\t\t</div>\n")
|
||||||
|
|
||||||
return entry
|
return entry
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
27
bin/ttbp.py
27
bin/ttbp.py
|
@ -9,12 +9,14 @@ import json
|
||||||
|
|
||||||
import core
|
import core
|
||||||
import chatter
|
import chatter
|
||||||
|
import inflect
|
||||||
|
|
||||||
## system globals
|
## system globals
|
||||||
SOURCE = os.path.join("/home", "endorphant", "projects", "ttbp", "bin")
|
SOURCE = os.path.join("/home", "endorphant", "projects", "ttbp", "bin")
|
||||||
LIVE = "http://tilde.town/~"
|
LIVE = "http://tilde.town/~"
|
||||||
FEEDBACK = os.path.join("/home", "endorphant", "ttbp-mail")
|
FEEDBACK = os.path.join("/home", "endorphant", "ttbp-mail")
|
||||||
USERFILE = os.path.join("/home", "endorphant", "projects", "ttbp", "users.txt")
|
USERFILE = os.path.join("/home", "endorphant", "projects", "ttbp", "users.txt")
|
||||||
|
p = inflect.engine()
|
||||||
|
|
||||||
## user globals
|
## user globals
|
||||||
USER = os.path.basename(os.path.expanduser("~"))
|
USER = os.path.basename(os.path.expanduser("~"))
|
||||||
|
@ -126,7 +128,7 @@ def gen_header():
|
||||||
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=\"#\">~"+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")
|
||||||
|
@ -243,6 +245,9 @@ def main_menu():
|
||||||
feedback_menu()
|
feedback_menu()
|
||||||
elif choice == '4':
|
elif choice == '4':
|
||||||
redraw(DUST)
|
redraw(DUST)
|
||||||
|
elif choice == 'secret':
|
||||||
|
redraw("here are your recorded feelings, listed by date:\n\n")
|
||||||
|
view_entries()
|
||||||
elif choice == "none":
|
elif choice == "none":
|
||||||
return stop()
|
return stop()
|
||||||
else:
|
else:
|
||||||
|
@ -257,7 +262,7 @@ def feedback_menu():
|
||||||
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', '3']:
|
||||||
cat = SUBJECTS[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))
|
||||||
|
@ -296,6 +301,7 @@ def send_feedback(subject="none", mailbox=os.path.join(FEEDBACK, USER+"-"+time.s
|
||||||
return "mail sent. thanks for writing! i'll try to respond to you soon."
|
return "mail sent. thanks for writing! i'll try to respond to you soon."
|
||||||
|
|
||||||
def view_neighbors():
|
def view_neighbors():
|
||||||
|
# TODO: rewrite this so you don't have to traverse a second list??
|
||||||
|
|
||||||
users = []
|
users = []
|
||||||
|
|
||||||
|
@ -306,12 +312,27 @@ def view_neighbors():
|
||||||
for user in users:
|
for user in users:
|
||||||
userRC = json.load(open(os.path.join("/home", user, ".ttbp", "config", "ttbprc")))
|
userRC = json.load(open(os.path.join("/home", user, ".ttbp", "config", "ttbprc")))
|
||||||
url = LIVE+user+"/"+userRC["publish dir"]
|
url = LIVE+user+"/"+userRC["publish dir"]
|
||||||
print("\t~"+user+"\t at "+url)
|
count = 0
|
||||||
|
for filename in os.listdir(os.path.join("/home", user, ".ttbp", "entries")):
|
||||||
|
if os.path.splitext(filename)[1] == ".txt" and len(os.path.splitext(filename)[0]) == 8:
|
||||||
|
count += 1
|
||||||
|
user = "~"+user
|
||||||
|
if len(user) < 8:
|
||||||
|
user += "\t"
|
||||||
|
print("\t"+user+"\t at "+url+"\t("+p.no("entry", count)+")")
|
||||||
|
|
||||||
raw_input("\n\npress <enter> to go back home.\n\n")
|
raw_input("\n\npress <enter> to go back home.\n\n")
|
||||||
redraw()
|
redraw()
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def view_entries():
|
||||||
|
|
||||||
|
entries = []
|
||||||
|
|
||||||
|
raw_input("\n\npress <ctrl-c> to go back home.\n\n")
|
||||||
|
redraw()
|
||||||
|
return
|
||||||
#####
|
#####
|
||||||
|
|
||||||
start()
|
start()
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
TO-DO:
|
TO-DO:
|
||||||
(goals for stable release)
|
(goals for stable release)
|
||||||
-make individual permalink pages
|
|
||||||
-add credits page
|
-add credits page
|
||||||
|
-browse own entries
|
||||||
|
-show most recent global entries
|
||||||
|
-filename validator (only process entries if they're
|
||||||
|
. ttbp/entries/YYMMDD.txt")
|
||||||
|
|
||||||
------
|
------
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue