import time from pathlib import Path # Setup paths base_path = Path(__file__).parent req_path = base_path / "requests" req_path.mkdir(exist_ok=True) print("Server online. Monitoring requests...") while True: # 1. Grab everything in the folder # .iterdir() is efficient for scanning for file_path in req_path.iterdir(): # FAILSAFE 1: Ignore folders or non-txt files (like .DS_Store or .tmp) if not file_path.is_file() or file_path.suffix != ".txt": print(f"Skipping non-txt file: {file_path.name}") continue try: # 2. Try to read the content with open(file_path, "r") as f: content = f.read().strip() # FAILSAFE 2: Check if the file is empty or missing colons if not content or ":" not in content: print(f"Malformed request in {file_path.name}. Deleting.") file_path.unlink() continue # 3. Parse the data # Use the '2' limit we discussed to protect passwords with colons parts = content.split(":", 2) # FAILSAFE 3: Check if we have enough parts (Command:User:Pass) if len(parts) < 3: print(f"Incomplete data in {file_path.name}. Deleting.") file_path.unlink() continue command, user, data = parts print(f"Processing {command} for {user}...") # --- YOUR LOGIC GOES HERE --- # if command == "LOGIN": ... # if command == "CREATEUSER": ... # 4. Clean up: Delete the request after successful processing file_path.unlink() except Exception as e: # FAILSAFE 4: Catch-all for weird errors (like file being locked) print(f"Error processing {file_path.name}: {e}") continue # 5. Heartbeat time.sleep(0.1)