self.address = ""
self.authenticated = False
self.avatar = None
+ self.choice = ""
self.columns = 79
self.connection = None
self.error = ""
def get_menu_choices(user):
"""Return a dict of choice:meaning."""
- menu = universe.groups["menu"][user.state]
- create_choices = menu.get("create")
+ state = universe.groups["menu"][user.state]
+ create_choices = state.get("create")
if create_choices:
choices = eval(create_choices)
else:
ignores = []
options = {}
creates = {}
- for facet in menu.facets():
+ for facet in state.facets():
if facet.startswith("demand_") and not eval(
universe.groups["menu"][user.state].get(facet)
):
options[facet] = facet.split("_", 2)[1]
for facet in creates.keys():
if not creates[facet] in ignores:
- choices[creates[facet]] = eval(menu.get(facet))
+ choices[creates[facet]] = eval(state.get(facet))
for facet in options.keys():
if not options[facet] in ignores:
- choices[options[facet]] = menu.get(facet)
+ choices[options[facet]] = state.get(facet)
return choices
return universe.groups["menu"][state].get("branch")
-def get_choice_branch(user, choice):
+def get_choice_branch(user):
"""Returns the new state matching the given choice."""
branches = get_menu_branches(user.state)
- if choice in branches.keys():
- return branches[choice]
- elif choice in user.menu_choices.keys():
+ if user.choice in branches.keys():
+ return branches[user.choice]
+ elif user.choice in user.menu_choices.keys():
return get_default_branch(user.state)
else:
return ""
return universe.groups["menu"][state].get("action")
-def get_choice_action(user, choice):
+def get_choice_action(user):
"""Run any indicated script for the given choice."""
actions = get_menu_actions(user.state)
- if choice in actions.keys():
- return actions[choice]
- elif choice in user.menu_choices.keys():
+ if user.choice in actions.keys():
+ return actions[user.choice]
+ elif user.choice in user.menu_choices.keys():
return get_default_action(user.state)
else:
return ""
# get a lower-case representation of the next line of input
if user.input_queue:
- choice = user.input_queue.pop(0)
- if choice:
- choice = choice.lower()
+ user.choice = user.input_queue.pop(0)
+ if user.choice:
+ user.choice = user.choice.lower()
else:
- choice = ""
- if not choice:
- choice = get_default_menu_choice(user.state)
- if choice in user.menu_choices:
- exec(get_choice_action(user, choice))
- new_state = get_choice_branch(user, choice)
+ user.choice = ""
+ if not user.choice:
+ user.choice = get_default_menu_choice(user.state)
+ if user.choice in user.menu_choices:
+ exec(get_choice_action(user))
+ new_state = get_choice_branch(user)
if new_state:
user.state = new_state
else: