rewrite some tail call loops as normal loops
parent
2e54939345
commit
5e7168c848
|
@ -2368,17 +2368,22 @@ def paren_prompt(text, positive=True, choices=[], function=input, default=None):
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
|
||||||
def sane_value(network, key, prompt, positive=True, return_empty=False):
|
def sane_value(network, key, prompt, positive=True, allow_empty=False):
|
||||||
|
while 1:
|
||||||
response = paren_prompt(prompt, positive)
|
response = paren_prompt(prompt, positive)
|
||||||
if return_empty and response == "":
|
if allow_empty and response == "":
|
||||||
return response
|
return response
|
||||||
try: network.validate(key, response)
|
try:
|
||||||
|
network.validate(key, response)
|
||||||
except AssertionError as e:
|
except AssertionError as e:
|
||||||
return sane_value(network, key, e.description, False)
|
prompt = e.description
|
||||||
|
positive = False
|
||||||
|
else:
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
|
||||||
def password_loop(prompt, positive=True):
|
def password_loop(prompt, positive=True):
|
||||||
|
while 1:
|
||||||
response1 = paren_prompt(prompt, positive, function=getpass)
|
response1 = paren_prompt(prompt, positive, function=getpass)
|
||||||
if response1 == "":
|
if response1 == "":
|
||||||
confprompt = "Confirm empty password"
|
confprompt = "Confirm empty password"
|
||||||
|
@ -2386,14 +2391,19 @@ def password_loop(prompt, positive=True):
|
||||||
confprompt = "Confirm it"
|
confprompt = "Confirm it"
|
||||||
response2 = paren_prompt(confprompt, function=getpass)
|
response2 = paren_prompt(confprompt, function=getpass)
|
||||||
if response1 != response2:
|
if response1 != response2:
|
||||||
return password_loop("Those didnt match. Try again", False)
|
prompt = "Those didnt match. Try again"
|
||||||
|
positive = False
|
||||||
|
else:
|
||||||
return response1
|
return response1
|
||||||
|
|
||||||
|
|
||||||
def nameloop(network, prompt, positive):
|
def nameloop(network, prompt, positive):
|
||||||
|
while 1:
|
||||||
name = sane_value(network, "user_name", prompt, positive)
|
name = sane_value(network, "user_name", prompt, positive)
|
||||||
if network.user_is_registered(name):
|
if network.user_is_registered(name):
|
||||||
return nameloop(network, "%s is already registered" % name, False)
|
prompt = "%s is already registered" % name
|
||||||
|
positive = False
|
||||||
|
else:
|
||||||
return name
|
return name
|
||||||
|
|
||||||
|
|
||||||
|
@ -2405,7 +2415,7 @@ def log_in(network, name="", password=""):
|
||||||
curses app.
|
curses app.
|
||||||
"""
|
"""
|
||||||
if not name:
|
if not name:
|
||||||
name = sane_value(network, "user_name", "Username", return_empty=True)
|
name = sane_value(network, "user_name", "Username", allow_empty=True)
|
||||||
if name == "":
|
if name == "":
|
||||||
motherfucking_rainbows("~~W3 4R3 4n0nYm0u5~~")
|
motherfucking_rainbows("~~W3 4R3 4n0nYm0u5~~")
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in New Issue