diff --git a/app/locales/en-US.json b/app/locales/en-US.json index 596a36e0b..6982b794c 100644 --- a/app/locales/en-US.json +++ b/app/locales/en-US.json @@ -227,6 +227,7 @@ "密码需要同时包含字母、数字、特殊字符中的至少两项,且长度大于6位": "Password must contain at least two of letters, numbers, and special characters, and be longer than 6 characters", "用户名不能为空": "Username cannot be empty", "用户名已被使用": "Username is already in use", + "系统已经完成初始化": "The system has already been initialized", "必须保留至少一个启用的超级管理员": "At least one active superuser must remain", "用户不存在": "User does not exist", "已存在相同名称的工作流": "A workflow with the same name already exists", diff --git a/app/locales/zh-TW.json b/app/locales/zh-TW.json index 1cb00385c..9ac8b3670 100644 --- a/app/locales/zh-TW.json +++ b/app/locales/zh-TW.json @@ -223,6 +223,7 @@ "密码需要同时包含字母、数字、特殊字符中的至少两项,且长度大于6位": "密碼需同時包含字母、數字、特殊字元中的至少兩項,且長度大於 6 位", "用户名不能为空": "使用者名稱不能為空", "用户名已被使用": "使用者名稱已被使用", + "系统已经完成初始化": "系統已完成初始化", "必须保留至少一个启用的超级管理员": "必須保留至少一個啟用的超級管理員", "用户不存在": "使用者不存在", "已存在相同名称的工作流": "已存在相同名稱的工作流", diff --git a/app/modules/jellyfin/jellyfin.py b/app/modules/jellyfin/jellyfin.py index 787d5093d..eb795fcb8 100644 --- a/app/modules/jellyfin/jellyfin.py +++ b/app/modules/jellyfin/jellyfin.py @@ -252,9 +252,10 @@ class Jellyfin: for user in users: if user.get("Name") == user_name: return user.get("Id") - if user_name == get_runtime_setting('SUPERUSER'): + if user_name: logger.warning( - "MoviePilot 当前配置的超级管理员用户名为 {},请确保Jellyfin中存在同名管理员账号,否则可能无法正常使用部分功能!".format(get_runtime_setting('SUPERUSER')) + f"未找到指定的 Jellyfin 用户账号 {user_name}," + "将回退选择可用的超级管理员账号!" ) # 查询管理员,优先选择同时具备全库访问能力的账号,再回退到普通管理员。 # 获取总媒体库数量 @@ -280,7 +281,9 @@ class Jellyfin: logger.warning("未找到可用的管理员账号,无法获取管理员用户,请检查Jellyfin用户及权限配置!") return None logger.warning( - f"未找到具备全库访问权限的管理员账号,回退使用仅可访问{best_admin_library_count}/{total_library_count}个媒体库的管理员账号{best_admin_name}!" + "未找到具备全库访问权限的管理员账号," + f"回退使用显式访问范围为 {best_admin_library_count}/{total_library_count} " + f"个媒体库的管理员账号 {best_admin_name}!" ) return best_admin_id else: diff --git a/docs/architecture-overview.md b/docs/architecture-overview.md index 5d6b4830b..8160fd8d6 100644 --- a/docs/architecture-overview.md +++ b/docs/architecture-overview.md @@ -755,7 +755,7 @@ flowchart LR | 指标 | 当前值 | |---|---:| | Python 模块 | 973 | -| 内部导入边 | 8,355 | +| 内部导入边 | 8,357 | | 非平凡 SCC | 1(精确 containment 的 TMDB 移植包环) | | Application / Chain 具体 Adapter 直连 | 0 / 0 | | Direct egress | 53(债务已清零,53 条精确 containment) | diff --git a/docs/architecture/optimization-checklist.md b/docs/architecture/optimization-checklist.md index b62cd8f51..946975513 100644 --- a/docs/architecture/optimization-checklist.md +++ b/docs/architecture/optimization-checklist.md @@ -72,7 +72,7 @@ ARCH-204 均达到实现、验证、提交、推送和远端门禁闭环;S4/AR | 指标 | 当前值 | 解释 | |---|---:|---| -| 宿主 Python 模块 / 内部依赖边 | 973 / 8,355 | `dependency-baseline.json` 当前快照 | +| 宿主 Python 模块 / 内部依赖边 | 974 / 8,357 | `dependency-baseline.json` 当前快照 | | 非平凡 SCC | 1 | 仅保留精确 containment 的 29 模块 TMDB 移植包环 | | 跨层 DB 边界债务 | 0 | Application、Chain、API、Agent、Runtime、Workflow 到 DB 的受控债务均为零 | | Model/Oper 事务债务 | 0 | 自建 Session、自动事务装饰器、直接 commit/rollback 等基线均为零 | diff --git a/tests/fixtures/architecture/dependency-baseline.json b/tests/fixtures/architecture/dependency-baseline.json index 78c67209f..3adb2ffe3 100644 --- a/tests/fixtures/architecture/dependency-baseline.json +++ b/tests/fixtures/architecture/dependency-baseline.json @@ -1089,8 +1089,8 @@ "runtime_only": true } }, - "edge_count": 8355, - "edge_sha256": "83d2fd65af87bfe90562c115b235afd2446e1e3576393398687a6e76e0c34105", + "edge_count": 8357, + "edge_sha256": "e123a63c95486085c2155270fb78cc09c5309bf80bde0a92c5bf21878f83b39f", "edges": [ "app -> app.foundation", "app -> app.foundation.environment", @@ -3082,19 +3082,22 @@ "app.api.endpoints.login -> app.adapters.web.security.access", "app.api.endpoints.login -> app.api", "app.api.endpoints.login -> app.api.context", + "app.api.endpoints.login -> app.api.dependencies", + "app.api.endpoints.login -> app.api.dependencies.auth", "app.api.endpoints.login -> app.api.response", "app.api.endpoints.login -> app.application", "app.api.endpoints.login -> app.application.configuration", "app.api.endpoints.login -> app.application.image", "app.api.endpoints.login -> app.application.security", "app.api.endpoints.login -> app.application.security.token", + "app.api.endpoints.login -> app.application.security.user", "app.api.endpoints.login -> app.application.site", "app.api.endpoints.login -> app.chain", "app.api.endpoints.login -> app.chain.user", "app.api.endpoints.login -> app.schemas", + "app.api.endpoints.login -> app.schemas.initialization", "app.api.endpoints.login -> app.schemas.response", "app.api.endpoints.login -> app.schemas.token", - "app.api.endpoints.login -> app.schemas.types", "app.api.endpoints.mcp -> app.adapters", "app.api.endpoints.mcp -> app.adapters.web", "app.api.endpoints.mcp -> app.adapters.web.security", @@ -4082,7 +4085,6 @@ "app.application.security.auth -> app.foundation.singleton", "app.application.security.auth -> app.schemas", "app.application.security.auth -> app.schemas.token", - "app.application.security.auth -> app.schemas.types", "app.application.security.auth -> app.schemas.user", "app.application.security.cookie -> app.application", "app.application.security.cookie -> app.application.security", @@ -9448,7 +9450,7 @@ "app.workflow.actions.transfer_file -> app.workflow", "app.workflow.actions.transfer_file -> app.workflow.actions" ], - "module_count": 973, + "module_count": 974, "modules": [ "app", "app.adapters", @@ -10318,6 +10320,7 @@ "app.schemas.exports", "app.schemas.file", "app.schemas.history", + "app.schemas.initialization", "app.schemas.llm", "app.schemas.mcp", "app.schemas.media",