60 lines
1.9 KiB
Python
Executable File
60 lines
1.9 KiB
Python
Executable File
"""
|
|
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"} |