refactor(chain): chain 与 module 仅经 run_module 契约互联,实现模块内容封闭

- mTorrent 字幕链接解析下沉为 IndexerModule.site_subtitle_links,subtitle 模块自行跳过 API 站点
- TMDB/MusicBrainz 识别缓存管理改为模块方法(tmdb_cache_*/music_cache_*)经 run_module 分发
- WechatClawBot 客户端查找/临时客户端/缓存迁移内聚为 wechatclawbot_* 模块方法,
  chain 移除 WechatClawBot 类与 ModuleManager 内省
- LISTENBRAINZ_* 常量迁至 schemas/types.py,模块与链层再导入保持兼容
- TMDbException 升为 schemas/exception.py 跨层契约,vendored 异常保持类身份一致
- 架构守护测试新增 test_chain_does_not_import_module_internals(共 18 项)
- 文档同步:chain->module 仅允许 run_module 分发,直接导入禁止
This commit is contained in:
jxxghp
2026-08-16 05:25:28 +08:00
parent 02f0dd0b9a
commit 4345fcfa22
21 changed files with 241 additions and 131 deletions
+18
View File
@@ -818,6 +818,24 @@ class TheMovieDbModule(_ModuleBase):
"""
return self.update_recognize_cache(meta=meta, mediainfo=mediainfo)
def tmdb_cache_items(self) -> list:
"""
查询TMDB识别缓存条目列表
"""
return self.cache.list_items()
def tmdb_cache_delete(self, cache_key: str) -> dict:
"""
按缓存键删除单条TMDB识别缓存
"""
return self.cache.delete(cache_key)
def tmdb_cache_clear(self) -> None:
"""
清空全部TMDB识别缓存
"""
self.cache.clear()
def media_category(self) -> Optional[Dict[str, list]]:
"""
获取媒体分类