You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

112 lines
4.0 KiB

#!/usr/bin/env python3
"""
Simple Profile Manager with API Integration Demo
"""
import json
from user_profile_integration import UserProfileIntegration
def main():
print("=== Profile Manager with API Integration ===")
# Initialize the integration
integration = UserProfileIntegration()
print(f"\\nDevice ID: {integration.get_device_id()}")
print(f"Active Profile: {integration.get_profile_name()}")
print(f"API Server: {'Connected' if integration.api_enabled else 'Offline'}")
while True:
print("\\n=== MAIN MENU ===")
print("1. Show Profile Info")
print("2. View Online Leaderboard")
print("3. View All Device Users")
print("4. Submit Test Score")
print("5. Create New Profile")
print("6. Exit")
try:
choice = input("\\nSelect option (1-6): ").strip()
if choice == "1":
# Show profile info
info = integration.get_profile_info()
if info:
print(f"\\n=== PROFILE INFO ===")
for key, value in info.items():
print(f"{key.replace('_', ' ').title()}: {value}")
else:
print("No active profile loaded")
elif choice == "2":
# Show leaderboard
if not integration.api_enabled:
print("API server not available")
continue
print(f"\\n=== LEADERBOARD ===")
leaderboard = integration.get_device_leaderboard(10)
if leaderboard:
for entry in leaderboard:
print(f"{entry['rank']}. {entry['user_id']}: {entry['best_score']} pts ({entry['total_games']} games)")
else:
print("No scores recorded yet")
elif choice == "3":
# Show all users
if not integration.api_enabled:
print("API server not available")
continue
print(f"\\n=== DEVICE USERS ===")
users = integration.get_all_device_users()
if users:
for user in users:
print(f"{user['user_id']}: Best {user['best_score']}, {user['total_scores']} games")
else:
print("No users registered yet")
elif choice == "4":
# Submit test score
if not integration.current_profile:
print("No active profile to submit score for")
continue
try:
score = int(input("Enter test score: "))
result = integration.update_game_stats(score, True)
if result:
print(f"Score {score} submitted successfully!")
else:
print("Failed to submit score")
except ValueError:
print("Invalid score entered")
elif choice == "5":
# Create new profile - simplified for demo
name = input("Enter new profile name: ").strip()
if not name:
print("Name cannot be empty")
continue
success = integration.register_new_user(name)
if success or not integration.api_enabled:
print(f"Profile '{name}' created successfully!")
else:
print("Failed to create profile")
elif choice == "6":
print("Goodbye!")
break
else:
print("Invalid choice")
except KeyboardInterrupt:
print("\\nGoodbye!")
break
except Exception as e:
print(f"Error: {e}")
if __name__ == "__main__":
main()