forked from endorphant/ttbp
nopub option complete, closes #6
parent
75b224e2d1
commit
9f8cc02f6c
59
ttbp/core.py
59
ttbp/core.py
|
@ -48,6 +48,7 @@ SETTINGS = {}
|
|||
HEADER = ""
|
||||
FOOTER = ""
|
||||
FILES = []
|
||||
NOPUBS = []
|
||||
|
||||
def load(ttbprc={}):
|
||||
'''
|
||||
|
@ -62,6 +63,7 @@ def load(ttbprc={}):
|
|||
FOOTER = open(os.path.join(config.USER_CONFIG, "footer.txt")).read()
|
||||
SETTINGS = ttbprc
|
||||
|
||||
load_nopubs()
|
||||
load_files()
|
||||
|
||||
def reload_ttbprc(ttbprc={}):
|
||||
|
@ -105,8 +107,23 @@ def load_files():
|
|||
|
||||
global FILES
|
||||
|
||||
load_nopubs()
|
||||
FILES = get_files()
|
||||
|
||||
def load_nopubs():
|
||||
"""Load a list of the user's nopub entries.
|
||||
"""
|
||||
|
||||
global NOPUBS
|
||||
|
||||
NOPUBS = []
|
||||
|
||||
if os.path.isfile(config.NOPUB):
|
||||
for line in open(config.NOPUB, "r"):
|
||||
if not re.match("^# ", line):
|
||||
NOPUBS.append(line.rstrip())
|
||||
|
||||
return len(NOPUBS)
|
||||
|
||||
## html outputting
|
||||
|
||||
|
@ -417,19 +434,45 @@ def nopub(filename):
|
|||
checks to see if given filename is in user's NOPUB
|
||||
'''
|
||||
|
||||
exclude = []
|
||||
|
||||
if os.path.isfile(config.NOPUB):
|
||||
for line in open(config.NOPUB, "r"):
|
||||
exclude.append(line.rstrip())
|
||||
|
||||
return os.path.basename(filename) in exclude
|
||||
return os.path.basename(filename) in NOPUBS
|
||||
|
||||
def toggle_nopub(filename):
|
||||
"""toggles pub/nopub status for the given filename
|
||||
|
||||
if the file is to be unpublished, delete it from published locations
|
||||
"""
|
||||
|
||||
pass
|
||||
global NOPUBS
|
||||
|
||||
action = "unpublishing"
|
||||
|
||||
if nopub(filename):
|
||||
NOPUBS.remove(filename)
|
||||
live_html = os.path.join(config.WWW, filename.split(".")[0]+".html")
|
||||
if os.path.exists(live_html):
|
||||
subprocess.call(["rm", live_html])
|
||||
live_gopher = os.path.join(config.GOPHER_PATH, filename)
|
||||
if os.path.exists(live_gopher):
|
||||
subprocess.call(["rm", live_gopher])
|
||||
else:
|
||||
action = "publishing"
|
||||
NOPUBS.append(filename)
|
||||
|
||||
nopub_file = open(config.NOPUB, 'w')
|
||||
nopub_file.write("""\
|
||||
# files that don't get published html/gopher. this file is
|
||||
# generated by ttbp; editing it directly may result in unexpected
|
||||
# behavior. if you have problems, back up this file, delete it, and
|
||||
# rebuild it from ttbp.\n""")
|
||||
for entry in NOPUBS:
|
||||
nopub_file.write(entry+"\n")
|
||||
nopub_file.close()
|
||||
|
||||
load_files()
|
||||
write("index.html")
|
||||
|
||||
return action
|
||||
|
||||
|
||||
#############
|
||||
#############
|
||||
|
|
11
ttbp/ttbp.py
11
ttbp/ttbp.py
|
@ -820,23 +820,24 @@ def list_nopubs(user):
|
|||
pub = "(nopub)"
|
||||
entries.append(""+entry[4]+" ("+p.no("word", entry[2])+") "+"\t"+pub)
|
||||
|
||||
return set_nopubs(metas, entries, "publishing status of your feels:")
|
||||
return set_nopubs(metas, entries, user, "publishing status of your feels:")
|
||||
else:
|
||||
redraw("no feels recorded by ~"+user)
|
||||
|
||||
def set_nopubs(metas, entries, prompt):
|
||||
def set_nopubs(metas, entries, user, prompt):
|
||||
"""displays a list of entries for pub/nopub toggling.
|
||||
"""
|
||||
|
||||
|
||||
choice = menu_handler(entries, "pick an entry from the list, or type 'q' to go back: ", 10, SETTINGS.get("rainbows", False), prompt)
|
||||
|
||||
if choice is not False:
|
||||
target = os.path.basename(metas[choice][0])
|
||||
core.toggle_nopub(target)
|
||||
action = core.toggle_nopub(target)
|
||||
redraw(prompt)
|
||||
print("setting {entry}".format(entry=target))
|
||||
#print("{action} {entry}".format(action=action, entry=target))
|
||||
|
||||
return set_nopubs(metas, entries, prompt)
|
||||
return list_nopubs(user)
|
||||
|
||||
else:
|
||||
redraw()
|
||||
|
|
Loading…
Reference in New Issue