Files
MoviePilot/app/runtime/compat/manifest.py
T

885 lines
30 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from dataclasses import dataclass
from typing import Dict, Set
@dataclass(frozen=True, slots=True)
class ModuleAlias:
"""描述一个旧模块路径到 canonical 模块的精确映射。"""
target: str
replacement: str
introduced: str
owner: str
is_package: bool = False
@dataclass(frozen=True, slots=True)
class SymbolAlias:
"""描述合成兼容包公开符号的精确来源。"""
target_module: str
target_name: str
replacement: str
# 只登记已经删除旧物理源码、并完成 canonical 路径验证的模块。
MODULE_ALIASES: Dict[str, ModuleAlias] = {
"app.chain.media_interaction": ModuleAlias(
target="app.chain.interaction",
replacement="app.chain.interaction",
introduced="v3.0.0",
owner="chain",
),
"app.log": ModuleAlias(
target="app.sdk.logging",
replacement="app.sdk.logging",
introduced="v3.0.0",
owner="sdk",
),
"app.domain.string": ModuleAlias(
target="app.sdk.string",
replacement="app.sdk.utilities",
introduced="v3.0.0",
owner="sdk",
),
# 规则域收敛为单一事实来源 app/application/rules.py
# filter_rules.py(内置规则集 + RuleParser)更名而来,filter.pyRuleHelper)并入
"app.application.filter": ModuleAlias(
target="app.application.rules",
replacement="app.application.rules",
introduced="v3.0.0",
owner="application",
),
"app.application.filter_rules": ModuleAlias(
target="app.application.rules",
replacement="app.application.rules",
introduced="v3.0.0",
owner="application",
),
"app.db.agentchat_oper": ModuleAlias(
target="app.db.oper.agentchat",
replacement="app.db.oper.agentchat",
introduced="v3.0.0",
owner="db",
),
"app.db.agenttask_oper": ModuleAlias(
target="app.db.oper.agenttask",
replacement="app.db.oper.agenttask",
introduced="v3.0.0",
owner="db",
),
"app.db.downloadfailure_oper": ModuleAlias(
target="app.db.oper.downloadfailure",
replacement="app.db.oper.downloadfailure",
introduced="v3.0.0",
owner="db",
),
"app.db.downloadhistory_oper": ModuleAlias(
target="app.db.oper.downloadhistory",
replacement="app.db.oper.downloadhistory",
introduced="v3.0.0",
owner="db",
),
"app.db.init": ModuleAlias(
target="app.startup.initializers.database",
replacement="app.startup.initializers.database",
introduced="v3.0.0",
owner="startup",
),
"app.db.mediaserver_oper": ModuleAlias(
target="app.db.oper.mediaserver",
replacement="app.db.oper.mediaserver",
introduced="v3.0.0",
owner="db",
),
"app.db.message_oper": ModuleAlias(
target="app.db.oper.message",
replacement="app.db.oper.message",
introduced="v3.0.0",
owner="db",
),
"app.db.plugindata_oper": ModuleAlias(
target="app.db.oper.plugindata",
replacement="app.db.oper.plugindata",
introduced="v3.0.0",
owner="db",
),
"app.db.site_oper": ModuleAlias(
target="app.db.oper.site",
replacement="app.db.oper.site",
introduced="v3.0.0",
owner="db",
),
"app.db.subscribe_oper": ModuleAlias(
target="app.sdk._legacy.subscribe",
replacement="app.application.subscription.write.add_subscribe",
introduced="v3.0.0",
owner="sdk",
),
"app.db.subscribehistory_oper": ModuleAlias(
target="app.db.oper.subscribehistory",
replacement="app.db.oper.subscribehistory",
introduced="v3.0.0",
owner="db",
),
"app.db.systemconfig_oper": ModuleAlias(
target="app.db.oper.systemconfig",
replacement="app.db.oper.systemconfig",
introduced="v3.0.0",
owner="db",
),
"app.db.transferhistory_oper": ModuleAlias(
target="app.sdk._legacy.history",
replacement="app.application.history",
introduced="v3.0.0",
owner="sdk",
),
"app.db.transferpending_oper": ModuleAlias(
target="app.db.oper.transferpending",
replacement="app.db.oper.transferpending",
introduced="v3.0.0",
owner="db",
),
"app.db.user_oper": ModuleAlias(
target="app.sdk._legacy.user",
replacement="app.db.oper.user 或 app.api.deps",
introduced="v3.0.0",
owner="sdk",
),
"app.db.userconfig_oper": ModuleAlias(
target="app.db.oper.userconfig",
replacement="app.db.oper.userconfig",
introduced="v3.0.0",
owner="db",
),
"app.db.workflow_oper": ModuleAlias(
target="app.db.oper.workflow",
replacement="app.db.oper.workflow",
introduced="v3.0.0",
owner="db",
),
"app.utils.crypto": ModuleAlias(
target="app.foundation.crypto",
replacement="app.sdk.utilities",
introduced="v3.0.0",
owner="foundation",
),
"app.utils.dom": ModuleAlias(
target="app.foundation.dom",
replacement="app.sdk.utilities",
introduced="v3.0.0",
owner="foundation",
),
"app.utils.identity": ModuleAlias(
target="app.foundation.identity",
replacement="app.foundation.identity",
introduced="v3.0.0",
owner="foundation",
),
"app.utils.ip": ModuleAlias(
target="app.adapters.network.ip",
replacement="app.sdk.network",
introduced="v3.0.0",
owner="adapters",
),
"app.utils.jieba": ModuleAlias(
target="app.foundation.text",
replacement="app.sdk.utilities",
introduced="v3.0.0",
owner="foundation",
),
"app.utils.object": ModuleAlias(
target="app.foundation.reflection",
replacement="app.sdk.utilities",
introduced="v3.0.0",
owner="foundation",
),
"app.utils.otp": ModuleAlias(
target="app.application.security.otp",
replacement="app.sdk.utilities",
introduced="v3.0.0",
owner="application",
),
"app.utils.singleton": ModuleAlias(
target="app.foundation.singleton",
replacement="app.sdk.utilities",
introduced="v3.0.0",
owner="foundation",
),
"app.utils.structures": ModuleAlias(
target="app.foundation.collections",
replacement="app.foundation.collections",
introduced="v3.0.0",
owner="foundation",
),
"app.utils.timer": ModuleAlias(
target="app.runtime.scheduling",
replacement="app.sdk.utilities",
introduced="v3.0.0",
owner="runtime",
),
"app.utils.tokens": ModuleAlias(
target="app.domain.tokens",
replacement="app.sdk.media",
introduced="v3.0.0",
owner="domain",
),
"app.utils.zhconv": ModuleAlias(
target="app.foundation.text",
replacement="app.foundation.text",
introduced="v3.0.0",
owner="foundation",
),
"app.utils.stdio": ModuleAlias(
target="app.adapters.system.stdio",
replacement="app.adapters.system.stdio",
introduced="v3.0.0",
owner="adapters",
),
"app.utils.system": ModuleAlias(
target="app.adapters.system.host",
replacement="app.sdk.utilities",
introduced="v3.0.0",
owner="adapters",
),
"app.utils.coalesce": ModuleAlias(
target="app.runtime.coalesce",
replacement="app.runtime.coalesce",
introduced="v3.0.0",
owner="runtime",
),
"app.utils.common": ModuleAlias(
target="app.sdk.utilities",
replacement="app.sdk.utilities",
introduced="v3.0.0",
owner="sdk",
),
"app.utils.debounce": ModuleAlias(
target="app.runtime.debounce",
replacement="app.runtime.debounce",
introduced="v3.0.0",
owner="runtime",
),
"app.utils.gc": ModuleAlias(
target="app.runtime.gc",
replacement="app.runtime.gc",
introduced="v3.0.0",
owner="runtime",
),
"app.utils.http": ModuleAlias(
target="app.adapters.network.http",
replacement="app.sdk.network",
introduced="v3.0.0",
owner="foundation",
),
"app.utils.limit": ModuleAlias(
target="app.runtime.rate",
replacement="app.runtime.rate",
introduced="v3.0.0",
owner="runtime",
),
"app.utils.media": ModuleAlias(
target="app.sdk.media",
replacement="app.sdk.media",
introduced="v3.0.0",
owner="sdk",
),
"app.utils.mixins": ModuleAlias(
target="app.runtime.reload",
replacement="app.runtime.reload",
introduced="v3.0.0",
owner="runtime",
),
"app.utils.rust_accel": ModuleAlias(
target="app.adapters.system.rust",
replacement="app.adapters.system.rust",
introduced="v3.0.0",
owner="adapters",
),
"app.utils.security": ModuleAlias(
target="app.application.security.url",
replacement="app.sdk.network",
introduced="v3.0.0",
owner="application",
),
"app.utils.site": ModuleAlias(
target="app.domain.site",
replacement="app.sdk.network",
introduced="v3.0.0",
owner="domain",
),
"app.utils.string": ModuleAlias(
target="app.sdk.string",
replacement="app.sdk.utilities",
introduced="v3.0.0",
owner="sdk",
),
"app.utils.url": ModuleAlias(
target="app.foundation.url",
replacement="app.sdk.network",
introduced="v3.0.0",
owner="foundation",
),
"app.utils.web": ModuleAlias(
target="app.adapters.external.location",
replacement="app.sdk.network",
introduced="v3.0.0",
owner="adapters",
),
"app.core.auth": ModuleAlias(
target="app.application.security.auth",
replacement="app.application.security.auth",
introduced="v3.0.0",
owner="application",
),
"app.core.auth_bridge": ModuleAlias(
target="app.application.security.auth",
replacement="app.application.security.auth",
introduced="v3.0.0",
owner="application",
),
"app.core.cache": ModuleAlias(
target="app.sdk.cache",
replacement="app.sdk.cache",
introduced="v3.0.0",
owner="sdk",
),
"app.core.config": ModuleAlias(
target="app.runtime.config",
replacement="app.sdk.config",
introduced="v3.0.0",
owner="runtime",
),
"app.core.context": ModuleAlias(
target="app.domain.context",
replacement="app.sdk.media",
introduced="v3.0.0",
owner="domain",
),
"app.core.event": ModuleAlias(
target="app.runtime.events",
replacement="app.sdk.events",
introduced="v3.0.0",
owner="runtime",
),
"app.core.meta.customization": ModuleAlias(
target="app.domain.meta.customization",
replacement="app.sdk.media",
introduced="v3.0.0",
owner="domain",
),
"app.core.meta.infopath": ModuleAlias(
target="app.domain.meta.infopath",
replacement="app.sdk.media",
introduced="v3.0.0",
owner="domain",
),
"app.core.meta.metaanime": ModuleAlias(
target="app.domain.meta.metaanime",
replacement="app.sdk.media",
introduced="v3.0.0",
owner="domain",
),
"app.core.meta.metabase": ModuleAlias(
target="app.domain.meta.metabase",
replacement="app.sdk.media",
introduced="v3.0.0",
owner="domain",
),
"app.core.meta.metamusic": ModuleAlias(
target="app.domain.meta.metamusic",
replacement="app.sdk.media",
introduced="v3.0.0",
owner="domain",
),
"app.core.meta.metavideo": ModuleAlias(
target="app.domain.meta.metavideo",
replacement="app.sdk.media",
introduced="v3.0.0",
owner="domain",
),
"app.core.meta.releasegroup": ModuleAlias(
target="app.domain.meta.releasegroup",
replacement="app.sdk.media",
introduced="v3.0.0",
owner="domain",
),
"app.core.meta.streamingplatform": ModuleAlias(
target="app.domain.meta.streamingplatform",
replacement="app.sdk.media",
introduced="v3.0.0",
owner="domain",
),
"app.core.meta.words": ModuleAlias(
target="app.domain.meta.words",
replacement="app.sdk.media",
introduced="v3.0.0",
owner="domain",
),
"app.core.metainfo": ModuleAlias(
target="app.domain.metainfo",
replacement="app.sdk.media",
introduced="v3.0.0",
owner="domain",
),
"app.core.module": ModuleAlias(
target="app.runtime.extensions.module_manager",
replacement="app.sdk.plugins",
introduced="v3.0.0",
owner="runtime",
),
"app.core.plugin": ModuleAlias(
target="app.runtime.extensions.plugin_manager",
replacement="app.sdk.plugins",
introduced="v3.0.0",
owner="runtime",
),
"app.core.security": ModuleAlias(
target="app.sdk.security",
replacement="app.sdk.security",
introduced="v3.0.0",
owner="sdk",
),
"app.helper.agent": ModuleAlias(
target="app.application.messaging.agent", replacement="app.application.messaging.agent",
introduced="v3.0.0", owner="application",
),
"app.helper.audio": ModuleAlias(
target="app.application.audio", replacement="app.application.audio",
introduced="v3.0.0", owner="application",
),
"app.helper.browser": ModuleAlias(
target="app.adapters.network.browser", replacement="app.adapters.network.browser",
introduced="v3.0.0", owner="adapters",
),
"app.helper.cloudflare": ModuleAlias(
target="app.adapters.network.cloudflare", replacement="app.adapters.network.cloudflare",
introduced="v3.0.0", owner="adapters",
),
"app.helper.cookie": ModuleAlias(
target="app.application.security.cookie", replacement="app.application.security.cookie",
introduced="v3.0.0", owner="application",
),
"app.helper.cookiecloud": ModuleAlias(
target="app.adapters.external.cookiecloud", replacement="app.adapters.external.cookiecloud",
introduced="v3.0.0", owner="adapters",
),
"app.helper.directory": ModuleAlias(
target="app.application.directory", replacement="app.application.directory",
introduced="v3.0.0", owner="application",
),
"app.helper.display": ModuleAlias(
target="app.adapters.system.display", replacement="app.adapters.system.display",
introduced="v3.0.0", owner="adapters",
),
"app.helper.doh": ModuleAlias(
target="app.adapters.network.doh", replacement="app.adapters.network.doh",
introduced="v3.0.0", owner="adapters",
),
"app.helper.downloader": ModuleAlias(
target="app.application.downloader", replacement="app.sdk.services",
introduced="v3.0.0", owner="application",
),
"app.helper.format": ModuleAlias(
target="app.application.formatting", replacement="app.application.formatting",
introduced="v3.0.0", owner="application",
),
"app.helper.image": ModuleAlias(
target="app.application.image", replacement="app.application.image",
introduced="v3.0.0", owner="application",
),
"app.helper.interaction": ModuleAlias(
target="app.application.messaging.interaction", replacement="app.application.messaging.interaction",
introduced="v3.0.0", owner="application",
),
"app.helper.locale": ModuleAlias(
target="app.runtime.localization", replacement="app.sdk.utilities",
introduced="v3.0.0", owner="runtime",
),
"app.helper.market": ModuleAlias(
target="app.adapters.external.market",
replacement="app.adapters.external.market",
introduced="v3.0.0", owner="adapters",
),
"app.helper.mediaserver": ModuleAlias(
target="app.application.mediaserver", replacement="app.sdk.services",
introduced="v3.0.0", owner="application",
),
"app.helper.message": ModuleAlias(
target="app.application.messaging.message", replacement="app.application.messaging.message",
introduced="v3.0.0", owner="application",
),
"app.helper.module": ModuleAlias(
target="app.foundation.reflection", replacement="app.foundation.reflection",
introduced="v3.0.0", owner="foundation",
),
"app.helper.nfo": ModuleAlias(
target="app.domain.scraper", replacement="app.sdk.media",
introduced="v3.0.0", owner="domain",
),
"app.helper.notification": ModuleAlias(
target="app.application.notification", replacement="app.sdk.services",
introduced="v3.0.0", owner="application",
),
"app.helper.ocr": ModuleAlias(
target="app.adapters.external.ocr", replacement="app.adapters.external.ocr",
introduced="v3.0.0", owner="adapters",
),
"app.helper.package": ModuleAlias(
target="app.adapters.system.package",
replacement="app.adapters.system.package",
introduced="v3.0.0", owner="adapters",
),
"app.helper.passkey": ModuleAlias(
target="app.application.security.passkey", replacement="app.application.security.passkey",
introduced="v3.0.0", owner="application",
),
"app.helper.plugin": ModuleAlias(
target="app.adapters.external.market",
replacement="app.adapters.external.market",
introduced="v3.0.0", owner="adapters",
),
"app.helper.progress": ModuleAlias(
target="app.runtime.progress", replacement="app.runtime.progress",
introduced="v3.0.0", owner="runtime",
),
"app.helper.redis": ModuleAlias(
target="app.adapters.cache.redis", replacement="app.adapters.cache.redis",
introduced="v3.0.0", owner="adapters",
),
"app.helper.resource": ModuleAlias(
target="app.adapters.system.resource",
replacement="app.adapters.system.resource",
introduced="v3.0.0", owner="adapters",
),
"app.helper.rss": ModuleAlias(
target="app.application.rss", replacement="app.sdk.network",
introduced="v3.0.0", owner="application",
),
"app.helper.rule": ModuleAlias(
target="app.application.rules", replacement="app.sdk.services",
introduced="v3.0.0", owner="application",
),
"app.helper.scraper": ModuleAlias(
target="app.domain.scraper", replacement="app.domain.scraper",
introduced="v3.0.0", owner="domain",
),
"app.helper.server": ModuleAlias(
target="app.adapters.external.server", replacement="app.adapters.external.server",
introduced="v3.0.0", owner="adapters",
),
"app.helper.service": ModuleAlias(
target="app.sdk.services",
replacement="app.sdk.services",
introduced="v3.0.0", owner="runtime",
),
"app.runtime.extensions.service_registry": ModuleAlias(
target="app.sdk.services",
replacement="app.sdk.services",
introduced="v3.0.0",
owner="sdk",
),
"app.helper.sites": ModuleAlias(
target="app.application.site.sites", replacement="app.sdk.network",
introduced="v3.0.0", owner="application",
),
"app.helper.skill": ModuleAlias(
target="app.agent.skills.registry",
replacement="app.agent.skills.registry",
introduced="v3.0.0", owner="agent",
),
"app.helper.storage": ModuleAlias(
target="app.application.storage", replacement="app.sdk.services",
introduced="v3.0.0", owner="application",
),
"app.helper.system": ModuleAlias(
target="app.runtime.state", replacement="app.sdk.services",
introduced="v3.0.0", owner="runtime",
),
"app.helper.thread": ModuleAlias(
target="app.runtime.thread", replacement="app.runtime.thread",
introduced="v3.0.0", owner="runtime",
),
"app.helper.torrent": ModuleAlias(
target="app.application.torrent", replacement="app.application.torrent",
introduced="v3.0.0", owner="application",
),
"app.helper.transferhistory": ModuleAlias(
target="app.application.history",
replacement="app.application.history",
introduced="v3.0.0", owner="application",
),
"app.helper.twofa": ModuleAlias(
target="app.application.security.twofactor", replacement="app.application.security.twofactor",
introduced="v3.0.0", owner="application",
),
"app.helper.webpush": ModuleAlias(
target="app.api.endpoints.message", replacement="app.api.endpoints.message",
introduced="v3.0.0", owner="api",
),
"app.helper.wallpaper": ModuleAlias(
target="app.application.image", replacement="app.application.image",
introduced="v3.0.0", owner="application",
),
"app.helper.llm": ModuleAlias(
target="app.agent.llm", replacement="app.agent.llm",
introduced="v3.0.0", owner="agent", is_package=True,
),
}
# 需要合成包级符号的旧路径单独登记;它们不是 canonical 模块别名。
PACKAGE_ALIASES: Dict[str, ModuleAlias] = {
"app.core.meta": ModuleAlias(
target="app.domain.meta",
replacement="app.sdk.media",
introduced="v3.0.0",
owner="domain",
is_package=True,
),
}
# 旧父包完全迁空后才登记;迁移中的物理父包继续由 PathFinder 处理。
VIRTUAL_PACKAGES: Set[str] = {"app.core", "app.helper", "app.utils"}
# 旧包 __init__.py 曾公开的符号在这里显式声明,禁止模糊转发。
PACKAGE_EXPORTS: Dict[str, Dict[str, SymbolAlias]] = {
"app.core.meta": {
"MetaBase": SymbolAlias(
target_module="app.domain.meta.metabase",
target_name="MetaBase",
replacement="app.sdk.media.MetaBase",
),
"MetaVideo": SymbolAlias(
target_module="app.domain.meta.metavideo",
target_name="MetaVideo",
replacement="app.sdk.media.MetaVideo",
),
"MetaAnime": SymbolAlias(
target_module="app.domain.meta.metaanime",
target_name="MetaAnime",
replacement="app.sdk.media.MetaAnime",
),
"MetaMusic": SymbolAlias(
target_module="app.domain.meta.metamusic",
target_name="MetaMusic",
replacement="app.sdk.media.MetaMusic",
),
"MusicNameContext": SymbolAlias(
target_module="app.domain.meta.metamusic",
target_name="MusicNameContext",
replacement="app.sdk.media.MusicNameContext",
),
"MusicNameParseResult": SymbolAlias(
target_module="app.domain.meta.metamusic",
target_name="MusicNameParseResult",
replacement="app.sdk.media.MusicNameParseResult",
),
"MusicNameParser": SymbolAlias(
target_module="app.domain.meta.metamusic",
target_name="MusicNameParser",
replacement="app.sdk.media.MusicNameParser",
),
"MusicNamePattern": SymbolAlias(
target_module="app.domain.meta.metamusic",
target_name="MusicNamePattern",
replacement="app.sdk.media.MusicNamePattern",
),
"MusicNamePatternMatch": SymbolAlias(
target_module="app.domain.meta.metamusic",
target_name="MusicNamePatternMatch",
replacement="app.sdk.media.MusicNamePatternMatch",
),
"MusicNameRegistry": SymbolAlias(
target_module="app.domain.meta.metamusic",
target_name="MusicNameRegistry",
replacement="app.sdk.media.MusicNameRegistry",
),
},
}
# 物理模块仍存在、仅部分公开符号迁走时,由导入器在标准 Loader 执行后叠加惰性符号路由。
# canonical 源码不反向依赖兼容层,目标符号也只在旧调用方真正取用时加载。
# message/notification 命名统一后的旧符号映射:
# 通知渠道能力归 notificationNotificationChannel),消息收发归 messageMessage/MessageType)。
# 旧名在 app.schemas、app.schemas.message 两个入口都曾公开,共用同一份映射。
_MESSAGE_NOTIFICATION_SYMBOL_ALIASES: Dict[str, SymbolAlias] = {
"MessageChannel": SymbolAlias(
target_module="app.schemas.types",
target_name="NotificationChannel",
replacement="app.schemas.types.NotificationChannel",
),
"NotificationType": SymbolAlias(
target_module="app.schemas.types",
target_name="MessageType",
replacement="app.schemas.types.MessageType",
),
"Notification": SymbolAlias(
target_module="app.schemas.message",
target_name="Message",
replacement="app.schemas.message.Message",
),
"CommingMessage": SymbolAlias(
target_module="app.schemas.message",
target_name="IncomingMessage",
replacement="app.schemas.message.IncomingMessage",
),
"NotificationHistoryItem": SymbolAlias(
target_module="app.schemas.message",
target_name="MessageHistoryItem",
replacement="app.schemas.message.MessageHistoryItem",
),
**{
old: SymbolAlias(
target_module="app.schemas.message",
target_name=new,
replacement=f"app.schemas.message.{new}",
)
for old, new in (
("NotificationClearScope", "MessageClearScope"),
("NotificationClearBefore", "MessageClearBefore"),
("NotificationClearData", "MessageClearData"),
)
},
**{
name: SymbolAlias(
target_module="app.schemas.notification",
target_name=name,
replacement=f"app.schemas.notification.{name}",
)
for name in (
"ChannelCapability",
"ChannelCapabilities",
"ChannelCapabilityManager",
)
},
}
SYMBOL_ALIASES: Dict[str, Dict[str, SymbolAlias]] = {
"app.agent.orchestrator": {
"AgentChain": SymbolAlias(
target_module="app.chain.agent",
target_name="AgentChain",
replacement="app.chain.agent.AgentChain",
),
"ReplyMode": SymbolAlias(
target_module="app.schemas.types",
target_name="ReplyMode",
replacement="app.schemas.types.ReplyMode",
),
},
# 刮削能力从 MediaChain 拆出为独立 ScrapingChain 后,
# 原 app.chain.media 模块级公开的刮削选项与策略配置随迁到 app.chain.scraping
"app.chain.media": {
name: SymbolAlias(
target_module="app.chain.scraping",
target_name=name,
replacement=f"app.chain.scraping.{name}",
)
for name in ("ScrapingChain", "ScrapingOption", "ScrapingConfig")
},
"app.chain.message": {
"MediaInteractionChain": SymbolAlias(
target_module="app.chain.interaction",
target_name="MediaInteractionChain",
replacement="app.chain.interaction.MediaInteractionChain",
),
},
"app.domain.media": {
name: SymbolAlias(
target_module="app.schemas.media",
target_name=name,
replacement=f"app.schemas.media.{name}",
)
for name in (
"MEDIA_SOURCE_ALIASES",
"MEDIA_SOURCE_PREFIXES",
"normalize_media_source",
"parse_media_key",
"resolve_media_identity",
"normalize_media_identity_payload",
"build_media_key",
)
},
"app.schemas": {
**{
name: SymbolAlias(
target_module="app.sdk._legacy.transfer",
target_name=name,
replacement=f"app.application.transfer.{name}",
)
for name in ("TransferTask", "TransferQueue")
},
**_MESSAGE_NOTIFICATION_SYMBOL_ALIASES,
},
"app.schemas.transfer": {
**{
name: SymbolAlias(
target_module="app.sdk._legacy.transfer",
target_name=name,
replacement=f"app.application.transfer.{name}",
)
for name in ("TransferTask", "TransferQueue")
},
"DownloadHistory": SymbolAlias(
target_module="app.schemas.history",
target_name="DownloadHistory",
replacement="app.schemas.history.DownloadHistory",
),
"TransferDirectoryConf": SymbolAlias(
target_module="app.schemas.system",
target_name="TransferDirectoryConf",
replacement="app.schemas.system.TransferDirectoryConf",
),
"TmdbEpisode": SymbolAlias(
target_module="app.schemas.tmdb",
target_name="TmdbEpisode",
replacement="app.schemas.tmdb.TmdbEpisode",
),
"MediaType": SymbolAlias(
target_module="app.schemas.types",
target_name="MediaType",
replacement="app.schemas.types.MediaType",
),
},
"app.schemas.agent": {
"ReplyMode": SymbolAlias(
target_module="app.schemas.types",
target_name="ReplyMode",
replacement="app.schemas.types.ReplyMode",
),
},
"app.sdk.logging": {
name: SymbolAlias(
target_module="app.runtime.log",
target_name=name,
replacement=f"app.runtime.log.{name}",
)
for name in (
"CustomFormatter",
"LogConfigModel",
"LogEntry",
"LogSettings",
"LoggerManager",
"NonBlockingFileHandler",
"configure_log_settings",
"configure_log_writer",
"log_settings",
)
},
# message/notification 命名统一:通知渠道能力归 notification,消息收发归 message
"app.schemas.types": {
"MessageChannel": SymbolAlias(
target_module="app.schemas.types",
target_name="NotificationChannel",
replacement="app.schemas.types.NotificationChannel",
),
"NotificationType": SymbolAlias(
target_module="app.schemas.types",
target_name="MessageType",
replacement="app.schemas.types.MessageType",
),
},
"app.schemas.message": _MESSAGE_NOTIFICATION_SYMBOL_ALIASES,
}