#!/usr/bin/python import os import chatter SOURCE = os.path.join("/home", "endorphant", "projects", "ttbp", "bin") USER = os.path.basename(os.path.expanduser("~")) PATH = os.path.join("/home", USER, ".ttbp") LIVE = "http://tilde.town/~" WWW = os.path.join(PATH, "www") CONFIG = os.path.join(PATH, "config") DATA = os.path.join(PATH, "entries") HEADER = "" FOOTER = "" FILES = [] MONTHS = { "01":"january", "02":"february", "03":"march", "04":"april", "05":"may", "06":"june", "07":"july", "08":"august", "09":"september", "10":"october", "11":"november", "12":"december" } def load(): global FILES global HEADER global FOOTER HEADER = open(os.path.join(CONFIG, "header.txt")).read() FOOTER = open(os.path.join(CONFIG, "footer.txt")).read() for file in os.listdir(DATA): filename = os.path.join(DATA, file) if os.path.isfile(filename) and os.path.splitext(filename)[1] == ".txt": FILES.append(file) FILES.sort() FILES.reverse() def write(outurl="default.html"): outfile = open(os.path.join(WWW, outurl), "w") for line in HEADER: outfile.write(line) #for line in write_placeholder(): # outfile.write(line) for file in FILES: for line in write_entry(file): outfile.write(line) for line in FOOTER: outfile.write(line) outfile.close() return os.path.join(LIVE+USER,os.path.basename(os.path.realpath(WWW)),outurl) def write_entry(file): # dump given file into entry format, return as list of strings date = parse_date(file) entry = [ "\t\t



\n", "\t\t
\n", "\t\t\t
"+date[2]+" "+MONTHS[date[1]]+" "+date[0]+"
\n", "\t\t\t

" ] raw = [] rawfile = open(os.path.join(DATA, file), "r") for line in rawfile: raw.append(line) rawfile.close() for line in raw: entry.append(line+"\t\t\t") if line == "\n": entry.append("

\n\t\t\t

") entry.append("

\n\t\t
\n") return entry def parse_date(file): # assuming a filename of YYYYMMDD.txt, returns a list of # ['YYYY', 'MM', 'DD'] rawdate = os.path.splitext(os.path.basename(file))[0] date = [rawdate[0:4], rawdate[4:6], rawdate[6:]] return date