+44
-1
@@ -5,6 +5,20 @@ from datetime import datetime
|
||||
from pathlib import Path
|
||||
|
||||
DB_PATH = Path(__file__).parent / "database.json"
|
||||
SETTINGS_PATH = Path(__file__).parent / "settings.json"
|
||||
|
||||
def get_settings():
|
||||
if SETTINGS_PATH.exists():
|
||||
try:
|
||||
with open(SETTINGS_PATH, "r", encoding="utf-8") as f:
|
||||
return json.load(f)
|
||||
except Exception:
|
||||
pass
|
||||
return {"smtp_enabled": False, "smtp_server": "", "smtp_port": 465, "smtp_user": "", "smtp_pass": ""}
|
||||
|
||||
def save_settings(settings: dict):
|
||||
with open(SETTINGS_PATH, "w", encoding="utf-8") as f:
|
||||
json.dump(settings, f, indent=2)
|
||||
|
||||
def load_db():
|
||||
if DB_PATH.exists():
|
||||
@@ -25,24 +39,53 @@ def get_user_by_username(username: str):
|
||||
return u
|
||||
return None
|
||||
|
||||
def update_user_login(user_id: int):
|
||||
users = load_db()
|
||||
for u in users:
|
||||
if u.get("id") == user_id:
|
||||
u["last_login"] = datetime.now().isoformat()
|
||||
save_db(users)
|
||||
return u
|
||||
return None
|
||||
|
||||
def get_all_users():
|
||||
users = load_db()
|
||||
# 移除敏感的历史记录数据以便返回概览
|
||||
result = []
|
||||
for u in users:
|
||||
u_copy = {k: v for k, v in u.items() if k != "history"}
|
||||
result.append(u_copy)
|
||||
return result
|
||||
|
||||
def get_user_by_id(user_id: int):
|
||||
for u in load_db():
|
||||
if u.get("id") == user_id:
|
||||
return u
|
||||
return None
|
||||
|
||||
def create_user(user_data: dict):
|
||||
def create_user(user_data: dict, ip_address: str = "Unknown"):
|
||||
users = load_db()
|
||||
new_user = {
|
||||
**user_data,
|
||||
"id": int(time.time() * 1000),
|
||||
"createdAt": datetime.now().isoformat(),
|
||||
"register_ip": ip_address,
|
||||
"last_login": datetime.now().isoformat(),
|
||||
"history": []
|
||||
}
|
||||
users.append(new_user)
|
||||
save_db(users)
|
||||
return new_user
|
||||
|
||||
def update_user(user_id: int, updates: dict):
|
||||
users = load_db()
|
||||
for u in users:
|
||||
if u.get("id") == user_id:
|
||||
u.update(updates)
|
||||
save_db(users)
|
||||
return u
|
||||
return None
|
||||
|
||||
def add_history_record(user_id: int, markdown_text: str):
|
||||
users = load_db()
|
||||
for u in users:
|
||||
|
||||
Reference in New Issue
Block a user