# LOGIN CLIENT # HANDLES ACCOUNT CREATION AND VERIFICATION # user validity check: no spaces no slashes no unprintable ASCII characters no carriage returns or anything like that from pathlib import Path from datetime import datetime import time # Sets the universal current path script_dir = Path(__file__).parent def login_logic(): while True: print("LOGIN CLIENT") print("[1] Login [2] Sign up") login_choice = input(" > ") if login_choice == "1": while True: login_username = input("Username > ") if login_username.isalnum(): break else: print("Your username contains spaces or symbols! Check again.") while True: login_password = input("Password > ") if login_password.isalnum(): break else: print("Only 1-9, A-Z and a-z are allowed!") # Get current time (request identifier) timestamp_ms = int(time.time() * 1000) # 1. Define your paths clearly req_folder = script_dir / "requests" tmp_path = req_folder / f"{timestamp_ms}.tmp" final_path = req_folder / f"{timestamp_ms}.txt" for i in range(3): try: # 2. Write to the temporary file with open(tmp_path, "w") as request: request.write(f"LOGIN:{login_username}:{login_password}") # 3. Rename it to .txt (After the 'with' block finishes) tmp_path.rename(final_path) print("Request sent! Please wait...") while True: # Waiting logic break break except Exception as e: print(f"Error in attempt {i+1}: {e}") if login_choice == "2": while True: signup_username = input("New Username > ") if signup_username.isalnum(): break else: print("Cannot include spaces or symbols!") while True: while True: signup_password = input("Password > ") if signup_password.isalnum(): break else: print("Only 1-9, A-Z and a-z are allowed!") while True: signup_password_rep = input("Repeat Password > ") if signup_password_rep.isalnum(): break else: print("Only 1-9, A-Z and a-z are allowed!") if signup_password == signup_password_rep: break else: print("Passwords are not the same!") # Get current time (request identifier) timestamp_ms = int(time.time() * 1000) req_folder = script_dir / "requests" tmp_path = req_folder / f"{timestamp_ms}.tmp" final_path = req_folder / f"{timestamp_ms}.txt" for i in range(3): try: with open(tmp_path, "w") as request: request.write(f"CREATEUSER:{signup_username}:{signup_password}") # RENAME FILE!!! tmp_path.rename(final_path) print("Account creation request sent!") break except Exception as e: print(f"Error in attempt {i+1}: {e}") # TODO WAIT FOR SUCCESS/UNSUCCESS MESSAGE # The main thing if __name__ == "__main__": login_logic()