From f2e50bf78c544756070996f45eb93584b4114f3c Mon Sep 17 00:00:00 2001 From: Vincent Zeng Date: Tue, 2 Jan 2018 01:21:48 -0500 Subject: [PATCH] adding rainbow menus, closes #25 --- ttbp/config/__init__.py | 8 +++- ttbp/ttbp.py | 87 ++++++++++++++++++++++++++++++----------- 2 files changed, 72 insertions(+), 23 deletions(-) diff --git a/ttbp/config/__init__.py b/ttbp/config/__init__.py index 227e642..ce5efca 100644 --- a/ttbp/config/__init__.py +++ b/ttbp/config/__init__.py @@ -82,7 +82,7 @@ __________________________________________________________ | ____ ____ ____ _ ____ ____ _ _ ____ _ _ _ ____ | | |___ |___ |___ | [__ |___ |\ | | __ | |\ | |___ | | | |___ |___ |___ ___] |___ | \| |__] | | \| |___ | -| ver 0.10.2 | +| ver 0.10.3 (rainbows) | |__________________________________________________________| '''.lstrip() @@ -130,4 +130,10 @@ version 0.9.3 features: * ~login created centralfeels, which is an opt-in collection of html-published feels; create a blank file called '.centralfeels' in your home directory if you'd like to be included!""", + "0.10.3": """ +~[version 0.10.3 update]~ + + * rainbow menus are now an option! please message ~endorphant (with + screencaps, if possible) if rainbow menus are unreadable with your + terminal settings, so adjustments can be made for future updates""" } diff --git a/ttbp/ttbp.py b/ttbp/ttbp.py index 74a89c3..cb8a5c8 100644 --- a/ttbp/ttbp.py +++ b/ttbp/ttbp.py @@ -49,7 +49,7 @@ from . import chatter from . import gopher from . import util -__version__ = "0.10.2" +__version__ = "0.10.3" __author__ = "endorphant to explore your feels.\n\n") @@ -378,11 +380,14 @@ def setup_repair(): print("\nyour ttbp configuration doesn't look right. let me try to fix it....\n\n") + time.sleep(1) + settings_map = { "editor": select_editor, "publishing": select_publishing, "publish dir": select_publish_dir, - "gopher": gopher.select_gopher + "gopher": gopher.select_gopher, + "rainbows": toggle_rainbows } for option in iter(settings_map): @@ -417,7 +422,7 @@ def setup(): for setting in settingList: menuOptions.append(setting + ": \t" + str(SETTINGS.get(setting))) - util.print_menu(menuOptions, RAINBOW) + util.print_menu(menuOptions, SETTINGS.get("rainbows", False)) try: choice = raw_input("\npick a setting to change (or type 'q' to exit): ") @@ -468,6 +473,13 @@ def setup(): save_settings() return setup() + # rainbow menu selection + elif settingList[int(choice)] == "rainbows": + SETTINGS.update({"rainbows": toggle_rainbows()}) + redraw("rainbow menus set to {rainbow}".format(rainbow=SETTINGS.get("rainbows"))) + save_settings() + return setup() + raw_input("\nyou're all good to go, {friend}! hit to continue.\n\n".format(friend=chatter.say("friend"))) redraw() @@ -501,7 +513,7 @@ def main_menu(): "read documentation"] print("you're at ttbp home. remember, you can always press to come back here.\n") - util.print_menu(menuOptions, RAINBOW) + util.print_menu(menuOptions, SETTINGS.get("rainbows", False)) try: choice = raw_input("\ntell me about your feels (or type 'q' to exit): ") @@ -563,7 +575,7 @@ def feedback_menu(): * calls feedback writing function ''' - util.print_menu(SUBJECTS, RAINBOW) + util.print_menu(SUBJECTS, SETTINGS.get("rainbows", False)) choice = raw_input("\npick a category for your feedback: ") cat = "" @@ -592,7 +604,7 @@ def review_menu(intro=""): "modify feels publishing" ] - util.print_menu(menuOptions, RAINBOW) + util.print_menu(menuOptions, SETTINGS.get("rainbows", False)) choice = util.list_select(menuOptions, "what would you like to do with your feels? (or 'back' to return home) ") @@ -666,7 +678,7 @@ def view_neighbors(users, prompt): sortedUsers.append(user[0]) userIndex.append(user[2]) - choice = menu_handler(sortedUsers, "pick a townie to browse their feels, or type 'back' or 'q' to go home: ", 15, RAINBOW, prompt) + choice = menu_handler(sortedUsers, "pick a townie to browse their feels, or type 'back' or 'q' to go home: ", 15, SETTINGS.get("rainbows", False), prompt) if choice is not False: redraw("~{user}'s recorded feels, listed by date: \n".format(user=userIndex[choice])) @@ -835,7 +847,7 @@ def list_entries(metas, entries, prompt): displays a list of entries for reading selection ''' - choice = menu_handler(entries, "pick an entry from the list, or type 'q' to go back: ", 10, RAINBOW, prompt) + 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: @@ -932,6 +944,26 @@ your changes by exiting without saving. ## misc helpers +def toggle_rainbows(): + """setup helper for rainbow toggling + """ + + if SETTINGS.get("rainbows", False) is True: + status = "enabled" + else: + status = "disabled" + + print("\nRAINBOW MENU TOGGLING") + print("rainbow menus are currently {status}".format(status=status)) + + publish = util.input_yn("""\ + +would you like to have rainbow menus? + +please enter\ +""") + + return publish def select_editor(): ''' @@ -940,7 +972,7 @@ def select_editor(): print("\nTEXT EDITOR SELECTION") print("your current editor is: "+SETTINGS.get("editor")) - util.print_menu(EDITORS, RAINBOW) + util.print_menu(EDITORS, SETTINGS.get("rainbows", False)) choice = util.list_select(EDITORS, "pick your favorite text editor, or type 'q' to go back: ") if choice is False: @@ -1084,7 +1116,7 @@ def update_gopher(): ##### PATCHING UTILITIES -def updated(): +def user_up_to_date(): ''' checks to see if current user is up to the same version as system ''' @@ -1100,7 +1132,7 @@ def updated(): return False -def update_version(): +def update_user_version(): ''' updates user to current version, printing relevant release notes and stepping through new features. @@ -1119,9 +1151,10 @@ def update_version(): time.sleep(1) userVersion = "" + (x, y, z) = [0, 0, 0] if not os.path.isfile(versionFile): - # from 0.8.5 to 0.8.6: + # updates from 0.8.5 to 0.8.6, before versionfile existed # change style.css location if core.publishing(): @@ -1156,6 +1189,7 @@ def update_version(): else: # version at least 0.8.6 userVersion = open(versionFile, "r").read().rstrip() + x, y, z = [int(num) for num in userVersion.split(".")] # from 0.8.6 if userVersion == "0.8.6": @@ -1168,7 +1202,7 @@ def update_version(): # from earlier than 0.10.1 - if int(userVersion.split(".")[1]) < 10: + if y < 10: # select gopher print("[ NEW FEATURE ]") print(""" @@ -1184,19 +1218,28 @@ def update_version(): else: print("okay, passing on gopher for now. this option is available in settings if you change\nyour mind!") + if z < 3 or y < 10: + # set rainbow menu for 0.10.3 + print("[ NEW FEATURE ]") + SETTINGS.update({"rainbows": toggle_rainbows()}) + print(""" you're all good to go, """+chatter.say("friend")+"""! please contact ~endorphant if something strange happened to you during this update. """) - if int(userVersion.split(".")[1]) < 10: + if z < 1 or y < 10: # version 0.10.1 patch notes print(config.UPDATES["0.10.1"]) - if int(userVersion.split(".")[2]) < 2: + if z < 2 or y < 10: # version 0.10.2 patch notes print(config.UPDATES["0.10.2"]) + if z < 3 or y < 10: + # version 0.10.2 patch notes + print(config.UPDATES["0.10.3"]) + confirm = "" while confirm not in ("x", "", "X", ""):