Files
Chatter-EIAF/CHATTER/login_client.py
2026-04-08 19:46:30 -04:00

107 lines
3.8 KiB
Python

# 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()