diff --git a/assets/login_tui.py b/assets/login_tui.py new file mode 100644 index 0000000..ee4c048 --- /dev/null +++ b/assets/login_tui.py @@ -0,0 +1,88 @@ +import login_generator_lib + + +def ask_for_amount_of_logins(): + while True: + amount = input("how many logins do you want to generate? ") + if amount.isdigit(): + amount = int(amount) + break + print("please input a number...") + return amount + + +def ask_for_complex_or_not(): + while True: + complexity = input("do you want complex passwords (y/n)? ").lower() + if complexity.startswith("y"): + complexity = True + break + elif complexity.startswith("n"): + complexity = False + break + else: + print("please answer with y(es) of n(o)...") + return complexity + + +def ask_for_password_length(): + while True: + length = input("how long should the password be? ") + if length.isdigit(): + length = int(length) + break + print("please input a number...") + return length + + +def ask_for_save_to_file(): + while True: + save = input("do you want to save the logins (y/n)? ").lower() + if save.startswith("y"): + save = True + break + elif save.startswith("n"): + save = False + break + else: + print("please answer with y(es) of n(o)...") + return save + + +def generate_logins(amount, length, complexity): + logins = [] + for number in range(0, amount): + login = login_generator_lib.generate_login(length, complexity) + logins.append(login) + return logins + + +def save_to_file(data): + filepath = "logins.txt" + with open(filepath, "w") as fp: + for login in data: + username = login["username"] + password = login["password"] + fp.write("{} {}\n".format(username, password)) + + +def show_logins(logins): + for login in logins: + username = login["username"] + password = login["password"] + print("generated login is: {} with {} as password".format(username, password)) + + +def main(): + amount_of_logins = ask_for_amount_of_logins() + complexity = ask_for_complex_or_not() + length = ask_for_password_length() + save = ask_for_save_to_file() + logins = generate_logins(amount_of_logins, length, complexity) + show_logins(logins) + if save: + save_to_file(logins) + + +if __name__ == "__main__": + main()