ge-tool/backend/services/usernames.py

60 lines
1.9 KiB
Python
Raw Normal View History

2025-12-10 06:41:43 +00:00
"""
Usernames management service: loads from backend/static/userslist.json and exposes functions to get/add/delete usernames.
"""
import os
import json
from typing import List, Dict
USERS_FILE = os.path.join(os.path.dirname(__file__), '..', 'static', 'userslist.json')
def load_usernames() -> List[str]:
try:
with open(USERS_FILE, 'r', encoding='utf-8') as f:
return json.load(f)
except Exception:
return []
def save_usernames(usernames: List[str]) -> bool:
try:
with open(USERS_FILE, 'w', encoding='utf-8') as f:
json.dump(usernames, f, ensure_ascii=False, indent=4)
return True
except Exception:
return False
def get_usernames() -> Dict[str, object]:
try:
names = load_usernames()
return {"success": True, "usernames": names}
except Exception as e:
return {"success": False, "message": str(e)}
def add_username(new_username: str) -> Dict[str, object]:
new_username = new_username.strip()
if not new_username:
return {"success": False, "message": "Empty username"}
names = load_usernames()
if new_username in names:
return {"success": False, "message": "Already exists", "usernames": names}
names.append(new_username)
names.sort()
ok = save_usernames(names)
if ok:
return {"success": True, "message": "Added", "usernames": names}
return {"success": False, "message": "Could not save"}
def delete_username(username: str) -> Dict[str, object]:
username = username.strip()
names = load_usernames()
if username not in names:
return {"success": False, "message": "Not found", "usernames": names}
names.remove(username)
ok = save_usernames(names)
if ok:
return {"success": True, "message": "Deleted", "usernames": names}
return {"success": False, "message": "Could not save"}