refactor(managers): 重构单例管理器实现并优化代码结构
feat(ws_pool): 新增 WebSocket 连接池实现 perf(json): 使用 orjson 替代标准 json 库提升性能 style: 清理未使用的导入和冗余代码 docs: 更新架构文档和开发规范 test: 添加 WebSocket 连接池测试用例 fix(plugins): 修复自动审批插件 API 调用参数格式
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
该模块负责管理机器人的管理员列表。
|
||||
它现在以 Redis 作为主要数据源,文件仅用作备份。
|
||||
"""
|
||||
import json
|
||||
import orjson
|
||||
import os
|
||||
from typing import Set
|
||||
|
||||
@@ -66,7 +66,7 @@ class AdminManager(Singleton):
|
||||
try:
|
||||
if os.path.exists(self.data_file):
|
||||
with open(self.data_file, "r", encoding="utf-8") as f:
|
||||
data = json.load(f)
|
||||
data = orjson.loads(f.read())
|
||||
admins = data.get("admins", [])
|
||||
admins_to_migrate = set(int(admin_id) for admin_id in admins)
|
||||
|
||||
@@ -76,7 +76,7 @@ class AdminManager(Singleton):
|
||||
else:
|
||||
logger.info("admin.json 文件为空或不存在,无需迁移。")
|
||||
|
||||
except (json.JSONDecodeError, ValueError) as e:
|
||||
except ValueError as e:
|
||||
logger.error(f"解析 admin.json 失败,无法迁移: {e}")
|
||||
except Exception as e:
|
||||
logger.error(f"迁移管理员数据到 Redis 失败: {e}")
|
||||
@@ -89,7 +89,7 @@ class AdminManager(Singleton):
|
||||
admins = await self.get_all_admins()
|
||||
admin_list = [str(admin_id) for admin_id in admins]
|
||||
with open(self.data_file, "w", encoding="utf-8") as f:
|
||||
json.dump({"admins": admin_list}, f, indent=2, ensure_ascii=False)
|
||||
f.write(orjson.dumps({"admins": admin_list}, indent=2, ensure_ascii=False).decode('utf-8'))
|
||||
logger.debug(f"管理员列表已备份到 {self.data_file}")
|
||||
except Exception as e:
|
||||
logger.error(f"备份管理员列表到 admin.json 失败: {e}")
|
||||
|
||||
Reference in New Issue
Block a user