diff --git a/app/modules/filemanager/module.py b/app/modules/filemanager/module.py index 13c7d4cad..6d6113216 100644 --- a/app/modules/filemanager/module.py +++ b/app/modules/filemanager/module.py @@ -1,7 +1,9 @@ from pathlib import Path from typing import Any, Optional, List, Tuple, Union, Dict, Callable -from app.runtime.config import settings +from app.runtime.settings import RuntimeSettingsCompat + +settings = RuntimeSettingsCompat() from app.domain.context import MediaInfo, MusicInfo from app.domain.meta.metabase import MetaBase from app.domain.meta.metamusic import MetaMusic diff --git a/app/modules/filemanager/storages/alipan.py b/app/modules/filemanager/storages/alipan.py index 206b79fb1..c8afbb6d8 100644 --- a/app/modules/filemanager/storages/alipan.py +++ b/app/modules/filemanager/storages/alipan.py @@ -10,7 +10,10 @@ import requests from app.schemas.file import StorageUsage as _SchemaStorageUsage from app.schemas.workflow import FileItem as _SchemaFileItem -from app.runtime.config import settings, global_vars +from app.runtime.settings import RuntimeSettingsCompat +from app.runtime.config import global_vars + +settings = RuntimeSettingsCompat() from app.runtime.log import logger from app.modules.filemanager import StorageBase from app.modules.filemanager.storages import transfer_process diff --git a/app/modules/filemanager/storages/alist.py b/app/modules/filemanager/storages/alist.py index 4b936abf6..c5177ce2c 100644 --- a/app/modules/filemanager/storages/alist.py +++ b/app/modules/filemanager/storages/alist.py @@ -8,7 +8,10 @@ from typing import Optional, List from app.schemas.file import StorageUsage as _SchemaStorageUsage from app.schemas.workflow import FileItem as _SchemaFileItem from app.runtime.cache import cached -from app.runtime.config import settings, global_vars +from app.runtime.settings import RuntimeSettingsCompat +from app.runtime.config import global_vars + +settings = RuntimeSettingsCompat() from app.runtime.log import logger from app.modules.filemanager.storages import StorageBase, transfer_process from app.schemas.exception import OperationInterrupted, StorageQueryError diff --git a/app/modules/filemanager/storages/rclone.py b/app/modules/filemanager/storages/rclone.py index 19036c949..0a2995578 100644 --- a/app/modules/filemanager/storages/rclone.py +++ b/app/modules/filemanager/storages/rclone.py @@ -8,7 +8,9 @@ from typing import Optional, List, Union from app.schemas.file import StorageUsage as _SchemaStorageUsage from app.schemas.workflow import FileItem as _SchemaFileItem -from app.runtime.config import settings +from app.runtime.settings import RuntimeSettingsCompat + +settings = RuntimeSettingsCompat() from app.runtime.log import logger from app.modules.filemanager.storages import StorageBase, transfer_process from app.schemas.exception import StorageQueryError diff --git a/app/modules/filemanager/storages/smb.py b/app/modules/filemanager/storages/smb.py index a33e6b917..5f08d911b 100644 --- a/app/modules/filemanager/storages/smb.py +++ b/app/modules/filemanager/storages/smb.py @@ -14,7 +14,10 @@ from smbprotocol.exceptions import ( from app.schemas.file import StorageUsage as _SchemaStorageUsage from app.schemas.workflow import FileItem as _SchemaFileItem -from app.runtime.config import settings, global_vars +from app.runtime.settings import RuntimeSettingsCompat +from app.runtime.config import global_vars + +settings = RuntimeSettingsCompat() from app.runtime.log import logger from app.modules.filemanager import StorageBase from app.modules.filemanager.storages import transfer_process diff --git a/app/modules/filemanager/storages/u115.py b/app/modules/filemanager/storages/u115.py index ea8003411..db90db3f5 100644 --- a/app/modules/filemanager/storages/u115.py +++ b/app/modules/filemanager/storages/u115.py @@ -14,7 +14,10 @@ from cryptography.hazmat.primitives import hashes from app.schemas.file import StorageUsage as _SchemaStorageUsage from app.schemas.workflow import FileItem as _SchemaFileItem -from app.runtime.config import settings, global_vars +from app.runtime.settings import RuntimeSettingsCompat +from app.runtime.config import global_vars + +settings = RuntimeSettingsCompat() from app.runtime.log import logger from app.modules.filemanager import StorageBase from app.modules.filemanager.storages import transfer_process diff --git a/app/modules/filemanager/transhandler.py b/app/modules/filemanager/transhandler.py index 57042ddfd..2f7f5ff8d 100644 --- a/app/modules/filemanager/transhandler.py +++ b/app/modules/filemanager/transhandler.py @@ -4,7 +4,9 @@ from typing import Optional, List, Tuple from jinja2 import Template -from app.runtime.config import settings +from app.runtime.settings import RuntimeSettingsCompat + +settings = RuntimeSettingsCompat() from app.domain.context import MediaInfo, MusicInfo from app.runtime.events import eventmanager from app.domain.meta.metabase import MetaBase diff --git a/docs/refactor/backend-architecture-next-stage.md b/docs/refactor/backend-architecture-next-stage.md index e78e115a1..ec1a05cf3 100644 --- a/docs/refactor/backend-architecture-next-stage.md +++ b/docs/refactor/backend-architecture-next-stage.md @@ -1062,6 +1062,8 @@ MusicBrainz、ListenBrainz、LrcLib 与 TheAudioDB 模块族也完成同样迁 音乐元数据专项测试通过。 Emby、Jellyfin、Feishu、Discord 与 Slack 模块切换到动态运行时配置,模块测试与消息生命周期 ABI 保持; 配置债务由 62 个文件降至 57 个,媒体服务器和消息模块专项测试通过。 +文件管理器及 Alist、Rclone、U115、SMB、Alipan 存储实现切换到动态运行时配置,保留模块级 global_vars 与 +存储公开方法;配置债务由 57 个文件降至 50 个,文件管理与存储专项测试通过。 同日修正适配器配置下沉边界:OCR、CookieCloud、DoH、Rust 和资源签名等低层实现不再直接依赖 `app.application`,由 `app.runtime.settings` 端口承接组合根注入;未启动装配时仍回退旧 Settings ABI, diff --git a/tests/fixtures/architecture/configuration-debt-baseline.json b/tests/fixtures/architecture/configuration-debt-baseline.json index d335a7a31..f8a9eddbe 100644 --- a/tests/fixtures/architecture/configuration-debt-baseline.json +++ b/tests/fixtures/architecture/configuration-debt-baseline.json @@ -9,7 +9,7 @@ "root": "app" }, "settings_imports": { - "count": 57, + "count": 50, "files": [ "app/adapters/system/fsproxy.py", "app/cli.py", @@ -20,14 +20,7 @@ "app/doctor/runner.py", "app/factory.py", "app/main.py", - "app/modules/filemanager/module.py", - "app/modules/filemanager/storages/alipan.py", - "app/modules/filemanager/storages/alist.py", "app/modules/filemanager/storages/local.py", - "app/modules/filemanager/storages/rclone.py", - "app/modules/filemanager/storages/smb.py", - "app/modules/filemanager/storages/u115.py", - "app/modules/filemanager/transhandler.py", "app/modules/indexer/parser/__init__.py", "app/modules/indexer/parser/rousi.py", "app/modules/indexer/spider/__init__.py", diff --git a/tests/fixtures/architecture/dependency-baseline.json b/tests/fixtures/architecture/dependency-baseline.json index 441805822..f4c5d91e0 100644 --- a/tests/fixtures/architecture/dependency-baseline.json +++ b/tests/fixtures/architecture/dependency-baseline.json @@ -13,8 +13,8 @@ "runtime_to_db": [], "workflow_to_db": [] }, - "edge_count": 6421, - "edge_sha256": "2282230a3d14a429841f4f5a98da557808eb44c54e0b8bc2653a429fbd5f47de", + "edge_count": 6425, + "edge_sha256": "6cd4675c9165f8837860621c2f6c66574dc17e57d6b0b0421145e14b880e2257", "edges": [ "app -> app.runtime", "app -> app.runtime.compat", @@ -4094,8 +4094,8 @@ "app.modules.filemanager.module -> app.modules.filemanager.storages", "app.modules.filemanager.module -> app.modules.filemanager.transhandler", "app.modules.filemanager.module -> app.runtime", - "app.modules.filemanager.module -> app.runtime.config", "app.modules.filemanager.module -> app.runtime.log", + "app.modules.filemanager.module -> app.runtime.settings", "app.modules.filemanager.module -> app.schemas", "app.modules.filemanager.module -> app.schemas.file", "app.modules.filemanager.module -> app.schemas.mediaserver", @@ -4128,6 +4128,7 @@ "app.modules.filemanager.storages.alipan -> app.runtime", "app.modules.filemanager.storages.alipan -> app.runtime.config", "app.modules.filemanager.storages.alipan -> app.runtime.log", + "app.modules.filemanager.storages.alipan -> app.runtime.settings", "app.modules.filemanager.storages.alipan -> app.schemas", "app.modules.filemanager.storages.alipan -> app.schemas.exception", "app.modules.filemanager.storages.alipan -> app.schemas.file", @@ -4146,6 +4147,7 @@ "app.modules.filemanager.storages.alist -> app.runtime.cache", "app.modules.filemanager.storages.alist -> app.runtime.config", "app.modules.filemanager.storages.alist -> app.runtime.log", + "app.modules.filemanager.storages.alist -> app.runtime.settings", "app.modules.filemanager.storages.alist -> app.schemas", "app.modules.filemanager.storages.alist -> app.schemas.exception", "app.modules.filemanager.storages.alist -> app.schemas.file", @@ -4183,8 +4185,8 @@ "app.modules.filemanager.storages.rclone -> app.modules.filemanager", "app.modules.filemanager.storages.rclone -> app.modules.filemanager.storages", "app.modules.filemanager.storages.rclone -> app.runtime", - "app.modules.filemanager.storages.rclone -> app.runtime.config", "app.modules.filemanager.storages.rclone -> app.runtime.log", + "app.modules.filemanager.storages.rclone -> app.runtime.settings", "app.modules.filemanager.storages.rclone -> app.schemas", "app.modules.filemanager.storages.rclone -> app.schemas.exception", "app.modules.filemanager.storages.rclone -> app.schemas.file", @@ -4198,6 +4200,7 @@ "app.modules.filemanager.storages.smb -> app.runtime", "app.modules.filemanager.storages.smb -> app.runtime.config", "app.modules.filemanager.storages.smb -> app.runtime.log", + "app.modules.filemanager.storages.smb -> app.runtime.settings", "app.modules.filemanager.storages.smb -> app.schemas", "app.modules.filemanager.storages.smb -> app.schemas.exception", "app.modules.filemanager.storages.smb -> app.schemas.file", @@ -4213,6 +4216,7 @@ "app.modules.filemanager.storages.u115 -> app.runtime.config", "app.modules.filemanager.storages.u115 -> app.runtime.log", "app.modules.filemanager.storages.u115 -> app.runtime.rate", + "app.modules.filemanager.storages.u115 -> app.runtime.settings", "app.modules.filemanager.storages.u115 -> app.schemas", "app.modules.filemanager.storages.u115 -> app.schemas.exception", "app.modules.filemanager.storages.u115 -> app.schemas.file", @@ -4236,9 +4240,9 @@ "app.modules.filemanager.transhandler -> app.modules.filemanager", "app.modules.filemanager.transhandler -> app.modules.filemanager.storages", "app.modules.filemanager.transhandler -> app.runtime", - "app.modules.filemanager.transhandler -> app.runtime.config", "app.modules.filemanager.transhandler -> app.runtime.events", "app.modules.filemanager.transhandler -> app.runtime.log", + "app.modules.filemanager.transhandler -> app.runtime.settings", "app.modules.filemanager.transhandler -> app.schemas", "app.modules.filemanager.transhandler -> app.schemas.event", "app.modules.filemanager.transhandler -> app.schemas.exception",