refactor: route metadata module settings through runtime

This commit is contained in:
jxxghp
2026-08-23 03:01:29 +08:00
parent c5f0bd4fb7
commit 4641db7f5b
13 changed files with 44 additions and 32 deletions
+3 -1
View File
@@ -9,7 +9,9 @@ from pathlib import Path
from typing import Any, Optional, Tuple, Union
from uuid import UUID
from app.runtime.config import settings
from app.runtime.settings import RuntimeSettingsCompat
settings = RuntimeSettingsCompat()
from app.runtime.log import logger
from app.modules import _ModuleBase
from app.schemas.types import ModuleType, OtherModulesType
+3 -1
View File
@@ -1,7 +1,9 @@
from typing import List, Optional, Tuple, Union
from app.schemas.context import MediaPerson as _SchemaMediaPerson
from app.runtime.config import settings
from app.runtime.settings import RuntimeSettingsCompat
settings = RuntimeSettingsCompat()
from app.domain.context import MediaInfo
from app.domain.meta.metabase import MetaBase
from app.domain.scraper import MediaScraperHelper
+3 -1
View File
@@ -2,7 +2,9 @@ from datetime import date
from typing import Optional
from app.runtime.cache import cached
from app.runtime.config import settings
from app.runtime.settings import RuntimeSettingsCompat
settings = RuntimeSettingsCompat()
from app.runtime.log import logger
from app.adapters.network.http import AsyncRequestUtils, RequestUtils
+3 -1
View File
@@ -2,7 +2,9 @@ from dataclasses import dataclass
from typing import Any, List, Optional, Tuple, Union
from app.schemas.context import MediaPerson as _SchemaMediaPerson
from app.runtime.config import settings
from app.runtime.settings import RuntimeSettingsCompat
settings = RuntimeSettingsCompat()
from app.domain.context import MediaInfo
from app.domain.meta.metabase import MetaBase
from app.domain.scraper import MediaScraperHelper
+3 -1
View File
@@ -4,7 +4,9 @@ from typing import Optional
import requests
from app.runtime.cache import cached
from app.runtime.config import settings
from app.runtime.settings import RuntimeSettingsCompat
settings = RuntimeSettingsCompat()
from app.adapters.network.http import RequestUtils, AsyncRequestUtils
+3 -1
View File
@@ -4,7 +4,9 @@ from typing import Any, List, Optional, Tuple, Union
import cn2an
from app.schemas.context import MediaPerson as _SchemaMediaPerson
from app.runtime.config import settings
from app.runtime.settings import RuntimeSettingsCompat
settings = RuntimeSettingsCompat()
from app.domain.context import (
MediaInfo,
MusicAlbumInfo,
+3 -1
View File
@@ -13,7 +13,9 @@ import requests
from bs4 import BeautifulSoup
from app.runtime.cache import cached
from app.runtime.config import settings
from app.runtime.settings import RuntimeSettingsCompat
settings = RuntimeSettingsCompat()
from app.adapters.network.http import RequestUtils, AsyncRequestUtils
from app.foundation.singleton import WeakSingleton
+3 -1
View File
@@ -4,7 +4,9 @@ from typing import Optional, Tuple, Union
from app.runtime.cache import cached
from app.domain.context import MediaInfo
from app.runtime.config import settings
from app.runtime.settings import RuntimeSettingsCompat
settings = RuntimeSettingsCompat()
from app.runtime.log import logger
from app.modules import _ModuleBase
from app.schemas.types import MediaType, ModuleType, OtherModulesType
+3 -1
View File
@@ -11,7 +11,9 @@ from app.domain.meta.metabase import MetaBase
from app.domain.scraper import MediaScraperHelper
from app.foundation.text import convert as zhconv_convert
from app.modules import _ModuleBase
from app.runtime.config import settings
from app.runtime.settings import RuntimeSettingsCompat
settings = RuntimeSettingsCompat()
from app.runtime.log import logger
from app.schemas.context import MediaCredit, MediaImageSet
from app.schemas.media import normalize_media_source
+3 -1
View File
@@ -9,7 +9,9 @@ from pydantic import BaseModel, ConfigDict, Field, ValidationError
from app.adapters.network.http import AsyncRequestUtils, RequestUtils
from app.runtime.cache import cached
from app.runtime.config import settings
from app.runtime.settings import RuntimeSettingsCompat
settings = RuntimeSettingsCompat()
from app.runtime.log import logger
TModel = TypeVar("TModel", bound=BaseModel)
@@ -1056,6 +1056,8 @@ Agent 能力适配器、记忆和提示词模块改用 `RuntimeSettingsCompat`
配置债务由 89 个文件降至 84 个,插件、模块生命周期与线程安全专项测试通过。
Agent 下载、任务、媒体识别、刮削和 Web 搜索工具也切换到动态运行时端口,保留原工具输入与输出 ABI;
配置债务由 84 个文件降至 77 个,Agent 任务、搜索与识别专项测试通过。
AcoustID、AniList、Bangumi、Douban、Fanart 和 IMDb 模块族改用动态运行时端口,模块公开类与配置热读保持;
配置债务由 77 个文件降至 67 个,相关识别、浏览与刮削专项测试通过。
同日修正适配器配置下沉边界:OCR、CookieCloud、DoH、Rust 和资源签名等低层实现不再直接依赖
`app.application`,由 `app.runtime.settings` 端口承接组合根注入;未启动装配时仍回退旧 Settings ABI
@@ -9,7 +9,7 @@
"root": "app"
},
"settings_imports": {
"count": 77,
"count": 67,
"files": [
"app/adapters/system/fsproxy.py",
"app/cli.py",
@@ -20,16 +20,8 @@
"app/doctor/runner.py",
"app/factory.py",
"app/main.py",
"app/modules/acoustid/__init__.py",
"app/modules/anilist/__init__.py",
"app/modules/anilist/anilist.py",
"app/modules/bangumi/__init__.py",
"app/modules/bangumi/bangumi.py",
"app/modules/discord/discord.py",
"app/modules/douban/__init__.py",
"app/modules/douban/apiv2.py",
"app/modules/emby/emby.py",
"app/modules/fanart/__init__.py",
"app/modules/feishu/feishu.py",
"app/modules/filemanager/module.py",
"app/modules/filemanager/storages/alipan.py",
@@ -39,8 +31,6 @@
"app/modules/filemanager/storages/smb.py",
"app/modules/filemanager/storages/u115.py",
"app/modules/filemanager/transhandler.py",
"app/modules/imdb/__init__.py",
"app/modules/imdb/api.py",
"app/modules/indexer/parser/__init__.py",
"app/modules/indexer/parser/rousi.py",
"app/modules/indexer/spider/__init__.py",
+11 -11
View File
@@ -14,7 +14,7 @@
"workflow_to_db": []
},
"edge_count": 6421,
"edge_sha256": "18448b750688670f90d17bc46bc5425dc481a12266b01d3e126f0da13fe12fb7",
"edge_sha256": "a5ef71ffebe71367bde1689ab0889db037c83cea53b85ee12ad0a79aa006f231",
"edges": [
"app -> app.runtime",
"app -> app.runtime.compat",
@@ -3881,8 +3881,8 @@
"app.modules.acoustid -> app.adapters.network.http",
"app.modules.acoustid -> app.modules",
"app.modules.acoustid -> app.runtime",
"app.modules.acoustid -> app.runtime.config",
"app.modules.acoustid -> app.runtime.log",
"app.modules.acoustid -> app.runtime.settings",
"app.modules.acoustid -> app.schemas",
"app.modules.acoustid -> app.schemas.types",
"app.modules.anilist -> app.domain",
@@ -3894,8 +3894,8 @@
"app.modules.anilist -> app.modules",
"app.modules.anilist -> app.modules.anilist.anilist",
"app.modules.anilist -> app.runtime",
"app.modules.anilist -> app.runtime.config",
"app.modules.anilist -> app.runtime.log",
"app.modules.anilist -> app.runtime.settings",
"app.modules.anilist -> app.schemas",
"app.modules.anilist -> app.schemas.context",
"app.modules.anilist -> app.schemas.types",
@@ -3904,8 +3904,8 @@
"app.modules.anilist.anilist -> app.adapters.network.http",
"app.modules.anilist.anilist -> app.runtime",
"app.modules.anilist.anilist -> app.runtime.cache",
"app.modules.anilist.anilist -> app.runtime.config",
"app.modules.anilist.anilist -> app.runtime.log",
"app.modules.anilist.anilist -> app.runtime.settings",
"app.modules.bangumi -> app.adapters",
"app.modules.bangumi -> app.adapters.network",
"app.modules.bangumi -> app.adapters.network.http",
@@ -3918,8 +3918,8 @@
"app.modules.bangumi -> app.modules",
"app.modules.bangumi -> app.modules.bangumi.bangumi",
"app.modules.bangumi -> app.runtime",
"app.modules.bangumi -> app.runtime.config",
"app.modules.bangumi -> app.runtime.log",
"app.modules.bangumi -> app.runtime.settings",
"app.modules.bangumi -> app.schemas",
"app.modules.bangumi -> app.schemas.context",
"app.modules.bangumi -> app.schemas.types",
@@ -3928,7 +3928,7 @@
"app.modules.bangumi.bangumi -> app.adapters.network.http",
"app.modules.bangumi.bangumi -> app.runtime",
"app.modules.bangumi.bangumi -> app.runtime.cache",
"app.modules.bangumi.bangumi -> app.runtime.config",
"app.modules.bangumi.bangumi -> app.runtime.settings",
"app.modules.dingtalk -> app.domain",
"app.modules.dingtalk -> app.domain.context",
"app.modules.dingtalk -> app.modules",
@@ -3986,10 +3986,10 @@
"app.modules.douban -> app.modules.douban.apiv2",
"app.modules.douban -> app.modules.douban.scraper",
"app.modules.douban -> app.runtime",
"app.modules.douban -> app.runtime.config",
"app.modules.douban -> app.runtime.execution",
"app.modules.douban -> app.runtime.log",
"app.modules.douban -> app.runtime.rate",
"app.modules.douban -> app.runtime.settings",
"app.modules.douban -> app.schemas",
"app.modules.douban -> app.schemas.context",
"app.modules.douban -> app.schemas.exception",
@@ -4001,7 +4001,7 @@
"app.modules.douban.apiv2 -> app.foundation.singleton",
"app.modules.douban.apiv2 -> app.runtime",
"app.modules.douban.apiv2 -> app.runtime.cache",
"app.modules.douban.apiv2 -> app.runtime.config",
"app.modules.douban.apiv2 -> app.runtime.settings",
"app.modules.douban.scraper -> app.domain",
"app.modules.douban.scraper -> app.domain.context",
"app.modules.douban.scraper -> app.foundation",
@@ -4039,8 +4039,8 @@
"app.modules.fanart -> app.modules",
"app.modules.fanart -> app.runtime",
"app.modules.fanart -> app.runtime.cache",
"app.modules.fanart -> app.runtime.config",
"app.modules.fanart -> app.runtime.log",
"app.modules.fanart -> app.runtime.settings",
"app.modules.fanart -> app.schemas",
"app.modules.fanart -> app.schemas.types",
"app.modules.feishu -> app.application",
@@ -4273,8 +4273,8 @@
"app.modules.imdb -> app.modules",
"app.modules.imdb -> app.modules.imdb.api",
"app.modules.imdb -> app.runtime",
"app.modules.imdb -> app.runtime.config",
"app.modules.imdb -> app.runtime.log",
"app.modules.imdb -> app.runtime.settings",
"app.modules.imdb -> app.schemas",
"app.modules.imdb -> app.schemas.context",
"app.modules.imdb -> app.schemas.media",
@@ -4284,8 +4284,8 @@
"app.modules.imdb.api -> app.adapters.network.http",
"app.modules.imdb.api -> app.runtime",
"app.modules.imdb.api -> app.runtime.cache",
"app.modules.imdb.api -> app.runtime.config",
"app.modules.imdb.api -> app.runtime.log",
"app.modules.imdb.api -> app.runtime.settings",
"app.modules.indexer -> app.application",
"app.modules.indexer -> app.application.site",
"app.modules.indexer -> app.application.site.health",