From 4098cc1eecf9ab790f3e14f9c8503ec739293da2 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sun, 23 Aug 2026 03:03:26 +0800 Subject: [PATCH] refactor: route music module settings through runtime --- app/modules/listenbrainz/__init__.py | 4 +++- app/modules/lrclib/__init__.py | 4 +++- app/modules/musicbrainz/__init__.py | 4 +++- app/modules/musicbrainz/music_cache.py | 4 +++- app/modules/theaudiodb/__init__.py | 4 +++- docs/refactor/backend-architecture-next-stage.md | 2 ++ .../architecture/configuration-debt-baseline.json | 7 +------ tests/fixtures/architecture/dependency-baseline.json | 12 ++++++------ 8 files changed, 24 insertions(+), 17 deletions(-) diff --git a/app/modules/listenbrainz/__init__.py b/app/modules/listenbrainz/__init__.py index eaa8851e1..30f282265 100644 --- a/app/modules/listenbrainz/__init__.py +++ b/app/modules/listenbrainz/__init__.py @@ -1,7 +1,9 @@ from typing import Any, Optional, Tuple, Union from app.runtime.cache import cached -from app.runtime.config import settings +from app.runtime.settings import RuntimeSettingsCompat + +settings = RuntimeSettingsCompat() from app.domain.context import MusicInfo from app.runtime.log import logger from app.modules import _ModuleBase diff --git a/app/modules/lrclib/__init__.py b/app/modules/lrclib/__init__.py index 2a8073d9e..44dc6c7f7 100644 --- a/app/modules/lrclib/__init__.py +++ b/app/modules/lrclib/__init__.py @@ -4,7 +4,9 @@ import time from typing import Any, Optional, Tuple, Union from app.runtime.cache import cached -from app.runtime.config import settings +from app.runtime.settings import RuntimeSettingsCompat + +settings = RuntimeSettingsCompat() from app.domain.context import MusicInfo, MusicLyrics from app.domain.meta.metamusic import MetaMusic from app.runtime.log import logger diff --git a/app/modules/musicbrainz/__init__.py b/app/modules/musicbrainz/__init__.py index e9e74c3c8..324068f4a 100644 --- a/app/modules/musicbrainz/__init__.py +++ b/app/modules/musicbrainz/__init__.py @@ -8,7 +8,9 @@ from typing import Any, Iterable, Optional, Tuple, Union from requests import Session from app.runtime.cache import cached -from app.runtime.config import settings +from app.runtime.settings import RuntimeSettingsCompat + +settings = RuntimeSettingsCompat() from app.domain.context import ( MusicAlbumInfo, MusicArtistInfo, diff --git a/app/modules/musicbrainz/music_cache.py b/app/modules/musicbrainz/music_cache.py index 14f244be6..8b771df13 100644 --- a/app/modules/musicbrainz/music_cache.py +++ b/app/modules/musicbrainz/music_cache.py @@ -6,7 +6,9 @@ from time import time from typing import Optional from app.runtime.cache import FileCache, TTLCache -from app.runtime.config import settings +from app.runtime.settings import RuntimeSettingsCompat + +settings = RuntimeSettingsCompat() from app.domain.context import MusicInfo from app.domain.meta.metamusic import MetaMusic from app.runtime.log import logger diff --git a/app/modules/theaudiodb/__init__.py b/app/modules/theaudiodb/__init__.py index 96f7d3809..6757363f9 100644 --- a/app/modules/theaudiodb/__init__.py +++ b/app/modules/theaudiodb/__init__.py @@ -1,7 +1,9 @@ from typing import Any, Optional, Tuple, Union from app.runtime.cache import cached -from app.runtime.config import settings +from app.runtime.settings import RuntimeSettingsCompat + +settings = RuntimeSettingsCompat() from app.domain.context import ( MusicAlbumInfo, MusicArtistInfo, diff --git a/docs/refactor/backend-architecture-next-stage.md b/docs/refactor/backend-architecture-next-stage.md index 0361e406a..3c15923b6 100644 --- a/docs/refactor/backend-architecture-next-stage.md +++ b/docs/refactor/backend-architecture-next-stage.md @@ -1058,6 +1058,8 @@ Agent 下载、任务、媒体识别、刮削和 Web 搜索工具也切换到动 配置债务由 84 个文件降至 77 个,Agent 任务、搜索与识别专项测试通过。 AcoustID、AniList、Bangumi、Douban、Fanart 和 IMDb 模块族改用动态运行时端口,模块公开类与配置热读保持; 配置债务由 77 个文件降至 67 个,相关识别、浏览与刮削专项测试通过。 +MusicBrainz、ListenBrainz、LrcLib 与 TheAudioDB 模块族也完成同样迁移,配置债务由 67 个文件降至 62 个, +音乐元数据专项测试通过。 同日修正适配器配置下沉边界: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 b28d56165..376a7cbab 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": 67, + "count": 62, "files": [ "app/adapters/system/fsproxy.py", "app/cli.py", @@ -43,10 +43,6 @@ "app/modules/indexer/spider/torrentleech.py", "app/modules/indexer/spider/yema.py", "app/modules/jellyfin/jellyfin.py", - "app/modules/listenbrainz/__init__.py", - "app/modules/lrclib/__init__.py", - "app/modules/musicbrainz/__init__.py", - "app/modules/musicbrainz/music_cache.py", "app/modules/postgresql/__init__.py", "app/modules/qbittorrent/__init__.py", "app/modules/qqbot/qqbot.py", @@ -55,7 +51,6 @@ "app/modules/slack/slack.py", "app/modules/subtitle/__init__.py", "app/modules/telegram/telegram.py", - "app/modules/theaudiodb/__init__.py", "app/modules/themoviedb/__init__.py", "app/modules/themoviedb/category.py", "app/modules/themoviedb/scraper.py", diff --git a/tests/fixtures/architecture/dependency-baseline.json b/tests/fixtures/architecture/dependency-baseline.json index 616efc46f..2df6ab039 100644 --- a/tests/fixtures/architecture/dependency-baseline.json +++ b/tests/fixtures/architecture/dependency-baseline.json @@ -14,7 +14,7 @@ "workflow_to_db": [] }, "edge_count": 6421, - "edge_sha256": "a5ef71ffebe71367bde1689ab0889db037c83cea53b85ee12ad0a79aa006f231", + "edge_sha256": "6b9946cab961b8c499aad349218832c54c0b581f86ba8dbd992d538534a0322f", "edges": [ "app -> app.runtime", "app -> app.runtime.compat", @@ -4622,8 +4622,8 @@ "app.modules.listenbrainz -> app.modules", "app.modules.listenbrainz -> app.runtime", "app.modules.listenbrainz -> app.runtime.cache", - "app.modules.listenbrainz -> app.runtime.config", "app.modules.listenbrainz -> app.runtime.log", + "app.modules.listenbrainz -> app.runtime.settings", "app.modules.listenbrainz -> app.schemas", "app.modules.listenbrainz -> app.schemas.types", "app.modules.lrclib -> app.adapters", @@ -4636,8 +4636,8 @@ "app.modules.lrclib -> app.modules", "app.modules.lrclib -> app.runtime", "app.modules.lrclib -> app.runtime.cache", - "app.modules.lrclib -> app.runtime.config", "app.modules.lrclib -> app.runtime.log", + "app.modules.lrclib -> app.runtime.settings", "app.modules.lrclib -> app.schemas", "app.modules.lrclib -> app.schemas.types", "app.modules.musicbrainz -> app.adapters", @@ -4655,8 +4655,8 @@ "app.modules.musicbrainz -> app.modules.musicbrainz.music_cache", "app.modules.musicbrainz -> app.runtime", "app.modules.musicbrainz -> app.runtime.cache", - "app.modules.musicbrainz -> app.runtime.config", "app.modules.musicbrainz -> app.runtime.log", + "app.modules.musicbrainz -> app.runtime.settings", "app.modules.musicbrainz -> app.schemas", "app.modules.musicbrainz -> app.schemas.types", "app.modules.musicbrainz.music_cache -> app.domain", @@ -4667,8 +4667,8 @@ "app.modules.musicbrainz.music_cache -> app.foundation.singleton", "app.modules.musicbrainz.music_cache -> app.runtime", "app.modules.musicbrainz.music_cache -> app.runtime.cache", - "app.modules.musicbrainz.music_cache -> app.runtime.config", "app.modules.musicbrainz.music_cache -> app.runtime.log", + "app.modules.musicbrainz.music_cache -> app.runtime.settings", "app.modules.musicbrainz.music_cache -> app.schemas", "app.modules.musicbrainz.music_cache -> app.schemas.types", "app.modules.navidrome -> app.application", @@ -4935,8 +4935,8 @@ "app.modules.theaudiodb -> app.modules", "app.modules.theaudiodb -> app.runtime", "app.modules.theaudiodb -> app.runtime.cache", - "app.modules.theaudiodb -> app.runtime.config", "app.modules.theaudiodb -> app.runtime.log", + "app.modules.theaudiodb -> app.runtime.settings", "app.modules.theaudiodb -> app.schemas", "app.modules.theaudiodb -> app.schemas.types", "app.modules.themoviedb -> app.adapters",