fix(architecture): move media auxiliary mixin into _base package

media_auxiliary 作为模块共享 Mixin 放在 app/modules 顶层会被视为
业务模块,导致 anilist/bangumi/douban/imdb/themoviedb 跨模块直接
依赖,违反模块间禁止导入的架构约束。移入模块共享样板包
app/modules/_base(模块发现跳过)并同步依赖基线。
This commit is contained in:
jxxghp
2026-08-26 14:07:08 +08:00
parent e02418bace
commit df2ce103e1
8 changed files with 27 additions and 22 deletions
+1 -1
View File
@@ -10,7 +10,7 @@ from app.domain.meta.metabase import MetaBase
from app.domain.scraper import MediaScraperHelper
from app.modules import _ModuleBase
from app.modules.anilist.anilist import AniListApi
from app.modules.media_auxiliary import MediaAuxiliaryProviderMixin
from app.modules._base.media_auxiliary import MediaAuxiliaryProviderMixin
from app.runtime.log import logger
from app.schemas.types import (
MediaRecognizeType,
+1 -1
View File
@@ -12,7 +12,7 @@ from app.domain.meta.metabase import MetaBase
from app.domain.scraper import MediaScraperHelper
from app.modules import _ModuleBase
from app.modules.bangumi.bangumi import BangumiApi
from app.modules.media_auxiliary import MediaAuxiliaryProviderMixin
from app.modules._base.media_auxiliary import MediaAuxiliaryProviderMixin
from app.runtime.log import logger
from app.schemas.types import (
MediaRecognizeType,
+1 -1
View File
@@ -21,7 +21,7 @@ from app.foundation.text import convert as zhconv_convert
from app.modules import _ModuleBase
from app.modules.douban.apiv2 import DoubanApi
from app.modules.douban.scraper import DoubanScraper
from app.modules.media_auxiliary import MediaAuxiliaryProviderMixin
from app.modules._base.media_auxiliary import MediaAuxiliaryProviderMixin
from app.runtime.execution import retry
from app.runtime.log import logger
from app.runtime.rate import rate_limit_exponential
+1 -1
View File
@@ -11,7 +11,7 @@ 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.modules.media_auxiliary import MediaAuxiliaryProviderMixin
from app.modules._base.media_auxiliary import MediaAuxiliaryProviderMixin
from app.runtime.settings import RuntimeSettingsCompat
settings = RuntimeSettingsCompat()
+1 -1
View File
@@ -15,7 +15,7 @@ from app.domain.media import is_media_source_enabled, is_media_source_selected
from app.domain.meta.metabase import MetaBase
from app.foundation.text import convert as zhconv_convert
from app.modules import _ModuleBase
from app.modules.media_auxiliary import MediaAuxiliaryProviderMixin
from app.modules._base.media_auxiliary import MediaAuxiliaryProviderMixin
from app.modules.themoviedb.category import CategoryHelper
from app.modules.themoviedb.scraper import TmdbScraper
from app.modules.themoviedb.tmdb_cache import TmdbCache
+21 -16
View File
@@ -13,8 +13,8 @@
"runtime_to_db": [],
"workflow_to_db": []
},
"edge_count": 6804,
"edge_sha256": "3e9a93795c6cfb5bc78e4871ae7c11b064ec0a2ea4f545ce94a6c0c696800df4",
"edge_count": 6809,
"edge_sha256": "0e5ab6c1e8d428de4edbc0ee162f17130143946c483967aaf49bca8c7c75b105",
"edges": [
"app -> app.runtime",
"app -> app.runtime.compat",
@@ -4113,6 +4113,14 @@
"app.modules._base.downloader -> app.runtime.log",
"app.modules._base.downloader -> app.schemas",
"app.modules._base.downloader -> app.schemas.types",
"app.modules._base.media_auxiliary -> app.domain",
"app.modules._base.media_auxiliary -> app.domain.context",
"app.modules._base.media_auxiliary -> app.domain.media",
"app.modules._base.media_auxiliary -> app.domain.meta",
"app.modules._base.media_auxiliary -> app.domain.meta.metabase",
"app.modules._base.media_auxiliary -> app.domain.metainfo",
"app.modules._base.media_auxiliary -> app.schemas",
"app.modules._base.media_auxiliary -> app.schemas.types",
"app.modules._base.mediaserver -> app.application",
"app.modules._base.mediaserver -> app.application.mediaserver",
"app.modules._base.mediaserver -> app.domain",
@@ -4154,8 +4162,9 @@
"app.modules.anilist -> app.domain.meta.metabase",
"app.modules.anilist -> app.domain.scraper",
"app.modules.anilist -> app.modules",
"app.modules.anilist -> app.modules._base",
"app.modules.anilist -> app.modules._base.media_auxiliary",
"app.modules.anilist -> app.modules.anilist.anilist",
"app.modules.anilist -> app.modules.media_auxiliary",
"app.modules.anilist -> app.runtime",
"app.modules.anilist -> app.runtime.log",
"app.modules.anilist -> app.runtime.settings",
@@ -4179,8 +4188,9 @@
"app.modules.bangumi -> app.domain.meta.metabase",
"app.modules.bangumi -> app.domain.scraper",
"app.modules.bangumi -> app.modules",
"app.modules.bangumi -> app.modules._base",
"app.modules.bangumi -> app.modules._base.media_auxiliary",
"app.modules.bangumi -> app.modules.bangumi.bangumi",
"app.modules.bangumi -> app.modules.media_auxiliary",
"app.modules.bangumi -> app.runtime",
"app.modules.bangumi -> app.runtime.log",
"app.modules.bangumi -> app.runtime.settings",
@@ -4251,9 +4261,10 @@
"app.modules.douban -> app.foundation",
"app.modules.douban -> app.foundation.text",
"app.modules.douban -> app.modules",
"app.modules.douban -> app.modules._base",
"app.modules.douban -> app.modules._base.media_auxiliary",
"app.modules.douban -> app.modules.douban.apiv2",
"app.modules.douban -> app.modules.douban.scraper",
"app.modules.douban -> app.modules.media_auxiliary",
"app.modules.douban -> app.runtime",
"app.modules.douban -> app.runtime.execution",
"app.modules.douban -> app.runtime.log",
@@ -4548,8 +4559,9 @@
"app.modules.imdb -> app.foundation",
"app.modules.imdb -> app.foundation.text",
"app.modules.imdb -> app.modules",
"app.modules.imdb -> app.modules._base",
"app.modules.imdb -> app.modules._base.media_auxiliary",
"app.modules.imdb -> app.modules.imdb.api",
"app.modules.imdb -> app.modules.media_auxiliary",
"app.modules.imdb -> app.runtime",
"app.modules.imdb -> app.runtime.log",
"app.modules.imdb -> app.runtime.settings",
@@ -4920,14 +4932,6 @@
"app.modules.lrclib -> app.runtime.settings",
"app.modules.lrclib -> app.schemas",
"app.modules.lrclib -> app.schemas.types",
"app.modules.media_auxiliary -> app.domain",
"app.modules.media_auxiliary -> app.domain.context",
"app.modules.media_auxiliary -> app.domain.media",
"app.modules.media_auxiliary -> app.domain.meta",
"app.modules.media_auxiliary -> app.domain.meta.metabase",
"app.modules.media_auxiliary -> app.domain.metainfo",
"app.modules.media_auxiliary -> app.schemas",
"app.modules.media_auxiliary -> app.schemas.types",
"app.modules.musicbrainz -> app.adapters",
"app.modules.musicbrainz -> app.adapters.network",
"app.modules.musicbrainz -> app.adapters.network.http",
@@ -5260,7 +5264,8 @@
"app.modules.themoviedb -> app.foundation",
"app.modules.themoviedb -> app.foundation.text",
"app.modules.themoviedb -> app.modules",
"app.modules.themoviedb -> app.modules.media_auxiliary",
"app.modules.themoviedb -> app.modules._base",
"app.modules.themoviedb -> app.modules._base.media_auxiliary",
"app.modules.themoviedb -> app.modules.themoviedb.category",
"app.modules.themoviedb -> app.modules.themoviedb.scraper",
"app.modules.themoviedb -> app.modules.themoviedb.tmdb_cache",
@@ -7320,6 +7325,7 @@
"app.modules",
"app.modules._base",
"app.modules._base.downloader",
"app.modules._base.media_auxiliary",
"app.modules._base.mediaserver",
"app.modules._base.notification",
"app.modules.acoustid",
@@ -7388,7 +7394,6 @@
"app.modules.jellyfin.jellyfin",
"app.modules.listenbrainz",
"app.modules.lrclib",
"app.modules.media_auxiliary",
"app.modules.musicbrainz",
"app.modules.musicbrainz.music_cache",
"app.modules.musixmatch",
+1 -1
View File
@@ -6,7 +6,7 @@ from unittest.mock import patch
from app.chain.search import SearchChain
from app.domain.context import MediaInfo
from app.modules.media_auxiliary import MediaAuxiliaryProviderMixin
from app.modules._base.media_auxiliary import MediaAuxiliaryProviderMixin
from app.schemas.types import MediaSource, MediaType