mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-05 07:27:15 +08:00
refactor: 推进后端分层架构治理
This commit is contained in:
+30
-36
@@ -1,36 +1,30 @@
|
||||
from .agent import *
|
||||
from .cache import *
|
||||
from .category import *
|
||||
from .common import *
|
||||
from .context import *
|
||||
from .dashboard import *
|
||||
from .download import *
|
||||
from .event import *
|
||||
from .exception import *
|
||||
from .file import *
|
||||
from .history import *
|
||||
from .llm import *
|
||||
from .mediaserver import *
|
||||
from .message import *
|
||||
from .mfa import *
|
||||
from .music import *
|
||||
from .monitoring import *
|
||||
from .notification import *
|
||||
from .plugin import *
|
||||
from .response import *
|
||||
from .rule import *
|
||||
from .search import *
|
||||
from .storage import *
|
||||
from .openai import *
|
||||
from .servarr import *
|
||||
from .servcookie import *
|
||||
from .site import *
|
||||
from .subscribe import *
|
||||
from .system import *
|
||||
from .system import *
|
||||
from .tmdb import *
|
||||
from .token import *
|
||||
from .transfer import *
|
||||
from .user import *
|
||||
from .workflow import *
|
||||
from .mcp import *
|
||||
"""Schema 根包的惰性兼容导出入口。
|
||||
|
||||
公开符号清单由 ``scripts/schema/exports.py`` 从各 schema 子模块生成。
|
||||
旧的 ``app.schemas.X`` 与 ``from app.schemas import X`` 路径保持不变,但仅在首次
|
||||
访问具体符号时加载其所有者模块,避免任意 schema 导入触发完整模型图。
|
||||
"""
|
||||
|
||||
from importlib import import_module as _import_module
|
||||
from typing import Any as _Any
|
||||
|
||||
from app.schemas.exports import SCHEMA_EXPORTS as _SCHEMA_EXPORTS
|
||||
|
||||
|
||||
def __getattr__(name: str) -> _Any:
|
||||
"""按生成清单惰性解析并缓存 schema 公开符号。"""
|
||||
contract = _SCHEMA_EXPORTS.get(name)
|
||||
if contract is None:
|
||||
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
||||
module_name, symbol_name = contract
|
||||
value = getattr(_import_module(module_name), symbol_name)
|
||||
globals()[name] = value
|
||||
return value
|
||||
|
||||
|
||||
def __dir__() -> list[str]:
|
||||
"""返回兼容公开面,供 IDE、文档与交互式检查使用。"""
|
||||
return sorted({*globals(), *_SCHEMA_EXPORTS})
|
||||
|
||||
|
||||
__all__ = sorted(_SCHEMA_EXPORTS)
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
"""AI智能体相关数据模型"""
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Any, List, Literal, Optional, Union
|
||||
from typing import List, Literal, Optional, Union
|
||||
|
||||
from langchain_core.messages import BaseMessage
|
||||
from pydantic import BaseModel, Field, ConfigDict, field_serializer
|
||||
|
||||
from app.schemas.common import JsonData
|
||||
from app.schemas.types import ReplyMode
|
||||
|
||||
|
||||
class ConversationMemory(BaseModel):
|
||||
|
||||
@@ -0,0 +1,445 @@
|
||||
"""由 scripts/schema/exports.py 生成,请勿手工编辑。"""
|
||||
|
||||
SCHEMA_EXPORTS = {
|
||||
'APIRateLimitException': ('app.schemas.exception', 'APIRateLimitException'),
|
||||
'Action': ('app.schemas.workflow', 'Action'),
|
||||
'ActionContext': ('app.schemas.workflow', 'ActionContext'),
|
||||
'ActionContract': ('app.schemas.workflow', 'ActionContract'),
|
||||
'ActionContractField': ('app.schemas.workflow', 'ActionContractField'),
|
||||
'ActionExecution': ('app.schemas.workflow', 'ActionExecution'),
|
||||
'ActionFlow': ('app.schemas.workflow', 'ActionFlow'),
|
||||
'ActionParams': ('app.schemas.workflow', 'ActionParams'),
|
||||
'ActionPosition': ('app.schemas.workflow', 'ActionPosition'),
|
||||
'ActionResult': ('app.schemas.workflow', 'ActionResult'),
|
||||
'ActionRetry': ('app.schemas.workflow', 'ActionRetry'),
|
||||
'AgentChatAttachment': ('app.schemas.agent', 'AgentChatAttachment'),
|
||||
'AgentChatChoiceButton': ('app.schemas.agent', 'AgentChatChoiceButton'),
|
||||
'AgentChatChoiceCard': ('app.schemas.agent', 'AgentChatChoiceCard'),
|
||||
'AgentChatChoiceSelection': ('app.schemas.agent', 'AgentChatChoiceSelection'),
|
||||
'AgentChatDisplaySaveRequest': ('app.schemas.agent', 'AgentChatDisplaySaveRequest'),
|
||||
'AgentChatMessage': ('app.schemas.agent', 'AgentChatMessage'),
|
||||
'AgentChatMessageSegment': ('app.schemas.agent', 'AgentChatMessageSegment'),
|
||||
'AgentChatSession': ('app.schemas.agent', 'AgentChatSession'),
|
||||
'AgentChatSessionDetail': ('app.schemas.agent', 'AgentChatSessionDetail'),
|
||||
'AgentChatSessionSummary': ('app.schemas.agent', 'AgentChatSessionSummary'),
|
||||
'AgentChatToolCall': ('app.schemas.agent', 'AgentChatToolCall'),
|
||||
'AgentChatUploadAttachment': ('app.schemas.agent', 'AgentChatUploadAttachment'),
|
||||
'AgentLLMProviderEventData': ('app.schemas.event', 'AgentLLMProviderEventData'),
|
||||
'AgentMcpServerConfig': ('app.schemas.agent', 'AgentMcpServerConfig'),
|
||||
'AgentMcpServerListData': ('app.schemas.agent', 'AgentMcpServerListData'),
|
||||
'AgentMcpServerTestRequest': ('app.schemas.agent', 'AgentMcpServerTestRequest'),
|
||||
'AgentMcpServerTestResult': ('app.schemas.agent', 'AgentMcpServerTestResult'),
|
||||
'AgentMcpServerToolInfo': ('app.schemas.agent', 'AgentMcpServerToolInfo'),
|
||||
'AgentMcpServersSaveRequest': ('app.schemas.agent', 'AgentMcpServersSaveRequest'),
|
||||
'AgentSessionStopData': ('app.schemas.agent', 'AgentSessionStopData'),
|
||||
'AgentState': ('app.schemas.agent', 'AgentState'),
|
||||
'AgentTokensUsageEventData': ('app.schemas.event', 'AgentTokensUsageEventData'),
|
||||
'AgentWebCallbackData': ('app.schemas.agent', 'AgentWebCallbackData'),
|
||||
'AgentWebChatRequest': ('app.schemas.message', 'AgentWebChatRequest'),
|
||||
'AgentWebChoiceFeedback': ('app.schemas.agent', 'AgentWebChoiceFeedback'),
|
||||
'AgentWebChoiceRequest': ('app.schemas.message', 'AgentWebChoiceRequest'),
|
||||
'AgentWebCommandInfo': ('app.schemas.agent', 'AgentWebCommandInfo'),
|
||||
'Annotated': ('app.schemas.context', 'Annotated'),
|
||||
'AnthropicErrorDetail': ('app.schemas.openai', 'AnthropicErrorDetail'),
|
||||
'AnthropicErrorResponse': ('app.schemas.openai', 'AnthropicErrorResponse'),
|
||||
'AnthropicMessage': ('app.schemas.openai', 'AnthropicMessage'),
|
||||
'AnthropicMessagesRequest': ('app.schemas.openai', 'AnthropicMessagesRequest'),
|
||||
'AnthropicMessagesResponse': ('app.schemas.openai', 'AnthropicMessagesResponse'),
|
||||
'AnthropicTextBlock': ('app.schemas.openai', 'AnthropicTextBlock'),
|
||||
'AnthropicUsage': ('app.schemas.openai', 'AnthropicUsage'),
|
||||
'Any': ('app.schemas.workflow', 'Any'),
|
||||
'AuthCredentials': ('app.schemas.event', 'AuthCredentials'),
|
||||
'AuthInterceptCredentials': ('app.schemas.event', 'AuthInterceptCredentials'),
|
||||
'AuthProviderInfo': ('app.schemas.user', 'AuthProviderInfo'),
|
||||
'AuthProviderRemote': ('app.schemas.user', 'AuthProviderRemote'),
|
||||
'BaseEventData': ('app.schemas.event', 'BaseEventData'),
|
||||
'BaseMessage': ('app.schemas.agent', 'BaseMessage'),
|
||||
'BaseModel': ('app.schemas.mcp', 'BaseModel'),
|
||||
'BatchProgressKeyData': ('app.schemas.common', 'BatchProgressKeyData'),
|
||||
'BatchTransferHistoryRedoRequest': ('app.schemas.history', 'BatchTransferHistoryRedoRequest'),
|
||||
'Callable': ('app.schemas.event', 'Callable'),
|
||||
'CategoryConfig': ('app.schemas.category', 'CategoryConfig'),
|
||||
'CategoryRule': ('app.schemas.category', 'CategoryRule'),
|
||||
'ChainEventData': ('app.schemas.event', 'ChainEventData'),
|
||||
'ChannelCapabilities': ('app.schemas.notification', 'ChannelCapabilities'),
|
||||
'ChannelCapability': ('app.schemas.notification', 'ChannelCapability'),
|
||||
'ChannelCapabilityManager': ('app.schemas.notification', 'ChannelCapabilityManager'),
|
||||
'ClassVar': ('app.schemas.subscribe', 'ClassVar'),
|
||||
'CommandRegisterEventData': ('app.schemas.event', 'CommandRegisterEventData'),
|
||||
'ConfigChangeEventData': ('app.schemas.event', 'ConfigChangeEventData'),
|
||||
'ConfigDict': ('app.schemas.workflow', 'ConfigDict'),
|
||||
'ContentType': ('app.schemas.message', 'ContentType'),
|
||||
'Context': ('app.schemas.workflow', 'Context'),
|
||||
'ConversationMemory': ('app.schemas.agent', 'ConversationMemory'),
|
||||
'CookieActionResponse': ('app.schemas.servcookie', 'CookieActionResponse'),
|
||||
'CookieData': ('app.schemas.servcookie', 'CookieData'),
|
||||
'CookieDecryptedPayload': ('app.schemas.servcookie', 'CookieDecryptedPayload'),
|
||||
'CookieEncryptedPayload': ('app.schemas.servcookie', 'CookieEncryptedPayload'),
|
||||
'CookiePassword': ('app.schemas.servcookie', 'CookiePassword'),
|
||||
'CustomRule': ('app.schemas.rule', 'CustomRule'),
|
||||
'DashboardMemoryInfo': ('app.schemas.dashboard', 'DashboardMemoryInfo'),
|
||||
'DashboardSystemInfo': ('app.schemas.dashboard', 'DashboardSystemInfo'),
|
||||
'DataT': ('app.schemas.response', 'DataT'),
|
||||
'Dict': ('app.schemas.mcp', 'Dict'),
|
||||
'DiscoverMediaSource': ('app.schemas.event', 'DiscoverMediaSource'),
|
||||
'DiscoverSourceEventData': ('app.schemas.event', 'DiscoverSourceEventData'),
|
||||
'Discriminator': ('app.schemas.context', 'Discriminator'),
|
||||
'DownloadAddedData': ('app.schemas.download', 'DownloadAddedData'),
|
||||
'DownloadDirectory': ('app.schemas.download', 'DownloadDirectory'),
|
||||
'DownloadHistory': ('app.schemas.history', 'DownloadHistory'),
|
||||
'DownloadTask': ('app.schemas.workflow', 'DownloadTask'),
|
||||
'DownloadTaskMedia': ('app.schemas.transfer', 'DownloadTaskMedia'),
|
||||
'DownloaderConf': ('app.schemas.system', 'DownloaderConf'),
|
||||
'DownloaderInfo': ('app.schemas.dashboard', 'DownloaderInfo'),
|
||||
'DownloaderTorrent': ('app.schemas.transfer', 'DownloaderTorrent'),
|
||||
'DownloadingTorrent': ('app.schemas.transfer', 'DownloadingTorrent'),
|
||||
'EndpointStats': ('app.schemas.monitoring', 'EndpointStats'),
|
||||
'Enum': ('app.schemas.notification', 'Enum'),
|
||||
'EpisodeFormat': ('app.schemas.transfer', 'EpisodeFormat'),
|
||||
'EpisodeFormatRecommendData': ('app.schemas.transfer', 'EpisodeFormatRecommendData'),
|
||||
'EpisodeFormatRecommendItem': ('app.schemas.transfer', 'EpisodeFormatRecommendItem'),
|
||||
'EpisodeFormatRule': ('app.schemas.transfer', 'EpisodeFormatRule'),
|
||||
'ErrorRequest': ('app.schemas.monitoring', 'ErrorRequest'),
|
||||
'Event': ('app.schemas.event', 'Event'),
|
||||
'ExistMediaInfo': ('app.schemas.mediaserver', 'ExistMediaInfo'),
|
||||
'Field': ('app.schemas.mcp', 'Field'),
|
||||
'FileItem': ('app.schemas.workflow', 'FileItem'),
|
||||
'FileNameData': ('app.schemas.common', 'FileNameData'),
|
||||
'FileURI': ('app.schemas.file', 'FileURI'),
|
||||
'FilterRuleGroup': ('app.schemas.system', 'FilterRuleGroup'),
|
||||
'Generic': ('app.schemas.response', 'Generic'),
|
||||
'IdData': ('app.schemas.common', 'IdData'),
|
||||
'ImmediateException': ('app.schemas.exception', 'ImmediateException'),
|
||||
'IncomingMessage': ('app.schemas.message', 'IncomingMessage'),
|
||||
'Iterable': ('app.schemas.event', 'Iterable'),
|
||||
'JsonData': ('app.schemas.mcp', 'JsonData'),
|
||||
'JsonObject': ('app.schemas.common', 'JsonObject'),
|
||||
'JsonObjectList': ('app.schemas.common', 'JsonObjectList'),
|
||||
'LLMAuthStatus': ('app.schemas.llm', 'LLMAuthStatus'),
|
||||
'LLMModelCatalogData': ('app.schemas.llm', 'LLMModelCatalogData'),
|
||||
'LLMModelInfo': ('app.schemas.llm', 'LLMModelInfo'),
|
||||
'LLMProviderAuthMethod': ('app.schemas.llm', 'LLMProviderAuthMethod'),
|
||||
'LLMProviderAuthSession': ('app.schemas.llm', 'LLMProviderAuthSession'),
|
||||
'LLMProviderBaseUrlPreset': ('app.schemas.llm', 'LLMProviderBaseUrlPreset'),
|
||||
'LLMProviderInfo': ('app.schemas.llm', 'LLMProviderInfo'),
|
||||
'LLMServerToolCapability': ('app.schemas.llm', 'LLMServerToolCapability'),
|
||||
'LLMTestResult': ('app.schemas.llm', 'LLMTestResult'),
|
||||
'LimitException': ('app.schemas.exception', 'LimitException'),
|
||||
'List': ('app.schemas.workflow', 'List'),
|
||||
'Literal': ('app.schemas.mcp', 'Literal'),
|
||||
'LocaleHelper': ('app.schemas.response', 'LocaleHelper'),
|
||||
'MCP_JSONRPC_REQUEST_SCHEMA': ('app.schemas.mcp', 'MCP_JSONRPC_REQUEST_SCHEMA'),
|
||||
'ManageRequest': ('app.schemas.common', 'ManageRequest'),
|
||||
'ManualTransferHistoryInfo': ('app.schemas.transfer', 'ManualTransferHistoryInfo'),
|
||||
'ManualTransferItem': ('app.schemas.transfer', 'ManualTransferItem'),
|
||||
'ManualTransferPreviewItem': ('app.schemas.transfer', 'ManualTransferPreviewItem'),
|
||||
'ManualTransferPreviewSummary': ('app.schemas.transfer', 'ManualTransferPreviewSummary'),
|
||||
'ManualTransferResultData': ('app.schemas.transfer', 'ManualTransferResultData'),
|
||||
'ManualTransferTargetPath': ('app.schemas.transfer', 'ManualTransferTargetPath'),
|
||||
'McpJsonRpcCapabilities': ('app.schemas.mcp', 'McpJsonRpcCapabilities'),
|
||||
'McpJsonRpcClientInfo': ('app.schemas.mcp', 'McpJsonRpcClientInfo'),
|
||||
'McpJsonRpcEmptyResult': ('app.schemas.mcp', 'McpJsonRpcEmptyResult'),
|
||||
'McpJsonRpcError': ('app.schemas.mcp', 'McpJsonRpcError'),
|
||||
'McpJsonRpcErrorDetail': ('app.schemas.mcp', 'McpJsonRpcErrorDetail'),
|
||||
'McpJsonRpcInitializeParams': ('app.schemas.mcp', 'McpJsonRpcInitializeParams'),
|
||||
'McpJsonRpcInitializeRequest': ('app.schemas.mcp', 'McpJsonRpcInitializeRequest'),
|
||||
'McpJsonRpcInitializeResult': ('app.schemas.mcp', 'McpJsonRpcInitializeResult'),
|
||||
'McpJsonRpcInitializedNotification': ('app.schemas.mcp', 'McpJsonRpcInitializedNotification'),
|
||||
'McpJsonRpcPingRequest': ('app.schemas.mcp', 'McpJsonRpcPingRequest'),
|
||||
'McpJsonRpcRequest': ('app.schemas.mcp', 'McpJsonRpcRequest'),
|
||||
'McpJsonRpcResponse': ('app.schemas.mcp', 'McpJsonRpcResponse'),
|
||||
'McpJsonRpcServerInfo': ('app.schemas.mcp', 'McpJsonRpcServerInfo'),
|
||||
'McpJsonRpcSuccess': ('app.schemas.mcp', 'McpJsonRpcSuccess'),
|
||||
'McpJsonRpcTextContent': ('app.schemas.mcp', 'McpJsonRpcTextContent'),
|
||||
'McpJsonRpcToolCallParams': ('app.schemas.mcp', 'McpJsonRpcToolCallParams'),
|
||||
'McpJsonRpcToolCallResult': ('app.schemas.mcp', 'McpJsonRpcToolCallResult'),
|
||||
'McpJsonRpcToolsCallRequest': ('app.schemas.mcp', 'McpJsonRpcToolsCallRequest'),
|
||||
'McpJsonRpcToolsCapability': ('app.schemas.mcp', 'McpJsonRpcToolsCapability'),
|
||||
'McpJsonRpcToolsListRequest': ('app.schemas.mcp', 'McpJsonRpcToolsListRequest'),
|
||||
'McpJsonRpcToolsListResult': ('app.schemas.mcp', 'McpJsonRpcToolsListResult'),
|
||||
'McpJsonSchema': ('app.schemas.mcp', 'McpJsonSchema'),
|
||||
'McpToolInfo': ('app.schemas.mcp', 'McpToolInfo'),
|
||||
'MediaCategoryMap': ('app.schemas.category', 'MediaCategoryMap'),
|
||||
'MediaCompany': ('app.schemas.context', 'MediaCompany'),
|
||||
'MediaCountry': ('app.schemas.context', 'MediaCountry'),
|
||||
'MediaCredit': ('app.schemas.context', 'MediaCredit'),
|
||||
'MediaEpisode': ('app.schemas.context', 'MediaEpisode'),
|
||||
'MediaEpisodeGroup': ('app.schemas.context', 'MediaEpisodeGroup'),
|
||||
'MediaEpisodeGroupNetwork': ('app.schemas.context', 'MediaEpisodeGroupNetwork'),
|
||||
'MediaGenre': ('app.schemas.context', 'MediaGenre'),
|
||||
'MediaImageSet': ('app.schemas.context', 'MediaImageSet'),
|
||||
'MediaInfo': ('app.schemas.workflow', 'MediaInfo'),
|
||||
'MediaLanguage': ('app.schemas.context', 'MediaLanguage'),
|
||||
'MediaPerson': ('app.schemas.context', 'MediaPerson'),
|
||||
'MediaRecognizeConvertEventData': ('app.schemas.event', 'MediaRecognizeConvertEventData'),
|
||||
'MediaReleaseDate': ('app.schemas.context', 'MediaReleaseDate'),
|
||||
'MediaSearchResult': ('app.schemas.context', 'MediaSearchResult'),
|
||||
'MediaSearchResults': ('app.schemas.context', 'MediaSearchResults'),
|
||||
'MediaSeason': ('app.schemas.context', 'MediaSeason'),
|
||||
'MediaServerConf': ('app.schemas.system', 'MediaServerConf'),
|
||||
'MediaServerExistingEpisodes': ('app.schemas.mediaserver', 'MediaServerExistingEpisodes'),
|
||||
'MediaServerExistsData': ('app.schemas.mediaserver', 'MediaServerExistsData'),
|
||||
'MediaServerItem': ('app.schemas.mediaserver', 'MediaServerItem'),
|
||||
'MediaServerItemUserState': ('app.schemas.mediaserver', 'MediaServerItemUserState'),
|
||||
'MediaServerLibrary': ('app.schemas.mediaserver', 'MediaServerLibrary'),
|
||||
'MediaServerPlayData': ('app.schemas.mediaserver', 'MediaServerPlayData'),
|
||||
'MediaServerPlayItem': ('app.schemas.mediaserver', 'MediaServerPlayItem'),
|
||||
'MediaServerSeasonInfo': ('app.schemas.mediaserver', 'MediaServerSeasonInfo'),
|
||||
'MediaSource': ('app.schemas.transfer', 'MediaSource'),
|
||||
'MediaType': ('app.schemas.subscribe', 'MediaType'),
|
||||
'Message': ('app.schemas.message', 'Message'),
|
||||
'MessageClearBefore': ('app.schemas.message', 'MessageClearBefore'),
|
||||
'MessageClearData': ('app.schemas.message', 'MessageClearData'),
|
||||
'MessageClearScope': ('app.schemas.message', 'MessageClearScope'),
|
||||
'MessageHistoryItem': ('app.schemas.message', 'MessageHistoryItem'),
|
||||
'MessageResponse': ('app.schemas.message', 'MessageResponse'),
|
||||
'MessageType': ('app.schemas.message', 'MessageType'),
|
||||
'MetaInfo': ('app.schemas.transfer', 'MetaInfo'),
|
||||
'MfaChallenge': ('app.schemas.token', 'MfaChallenge'),
|
||||
'MfaStatusData': ('app.schemas.mfa', 'MfaStatusData'),
|
||||
'MonitoringConfig': ('app.schemas.monitoring', 'MonitoringConfig'),
|
||||
'MonitoringOverview': ('app.schemas.monitoring', 'MonitoringOverview'),
|
||||
'MusicAlbumInfo': ('app.schemas.music', 'MusicAlbumInfo'),
|
||||
'MusicArtistInfo': ('app.schemas.music', 'MusicArtistInfo'),
|
||||
'MusicEntityType': ('app.schemas.music', 'MusicEntityType'),
|
||||
'MusicInfo': ('app.schemas.transfer', 'MusicInfo'),
|
||||
'MusicMeta': ('app.schemas.transfer', 'MusicMeta'),
|
||||
'MusicRecognitionCacheData': ('app.schemas.music', 'MusicRecognitionCacheData'),
|
||||
'MusicRecognitionCacheItem': ('app.schemas.music', 'MusicRecognitionCacheItem'),
|
||||
'MusicRecognizeRequest': ('app.schemas.music', 'MusicRecognizeRequest'),
|
||||
'MusicRelease': ('app.schemas.music', 'MusicRelease'),
|
||||
'MusicTargetEntityType': ('app.schemas.transfer', 'MusicTargetEntityType'),
|
||||
'NameData': ('app.schemas.common', 'NameData'),
|
||||
'NameValueOption': ('app.schemas.workflow', 'NameValueOption'),
|
||||
'NetTestTarget': ('app.schemas.system', 'NetTestTarget'),
|
||||
'NotExistMediaInfo': ('app.schemas.mediaserver', 'NotExistMediaInfo'),
|
||||
'NotificationChannel': ('app.schemas.notification', 'NotificationChannel'),
|
||||
'NotificationConf': ('app.schemas.system', 'NotificationConf'),
|
||||
'NotificationSwitch': ('app.schemas.message', 'NotificationSwitch'),
|
||||
'NotificationSwitchConf': ('app.schemas.system', 'NotificationSwitchConf'),
|
||||
'OpenAIChatChoice': ('app.schemas.openai', 'OpenAIChatChoice'),
|
||||
'OpenAIChatChoiceMessage': ('app.schemas.openai', 'OpenAIChatChoiceMessage'),
|
||||
'OpenAIChatCompletionResponse': ('app.schemas.openai', 'OpenAIChatCompletionResponse'),
|
||||
'OpenAIChatCompletionsRequest': ('app.schemas.openai', 'OpenAIChatCompletionsRequest'),
|
||||
'OpenAIChatContentPart': ('app.schemas.openai', 'OpenAIChatContentPart'),
|
||||
'OpenAIChatMessage': ('app.schemas.openai', 'OpenAIChatMessage'),
|
||||
'OpenAIErrorDetail': ('app.schemas.openai', 'OpenAIErrorDetail'),
|
||||
'OpenAIErrorResponse': ('app.schemas.openai', 'OpenAIErrorResponse'),
|
||||
'OpenAIIncompleteDetails': ('app.schemas.openai', 'OpenAIIncompleteDetails'),
|
||||
'OpenAIModelInfo': ('app.schemas.openai', 'OpenAIModelInfo'),
|
||||
'OpenAIModelListResponse': ('app.schemas.openai', 'OpenAIModelListResponse'),
|
||||
'OpenAIResponseAnnotation': ('app.schemas.openai', 'OpenAIResponseAnnotation'),
|
||||
'OpenAIResponsesOutputMessage': ('app.schemas.openai', 'OpenAIResponsesOutputMessage'),
|
||||
'OpenAIResponsesOutputText': ('app.schemas.openai', 'OpenAIResponsesOutputText'),
|
||||
'OpenAIResponsesRequest': ('app.schemas.openai', 'OpenAIResponsesRequest'),
|
||||
'OpenAIResponsesResponse': ('app.schemas.openai', 'OpenAIResponsesResponse'),
|
||||
'OpenAIUsage': ('app.schemas.openai', 'OpenAIUsage'),
|
||||
'OperationInterrupted': ('app.schemas.exception', 'OperationInterrupted'),
|
||||
'Optional': ('app.schemas.mcp', 'Optional'),
|
||||
'OptionalMediaIdentityMixin': ('app.schemas.transfer', 'OptionalMediaIdentityMixin'),
|
||||
'OtpGenerateData': ('app.schemas.mfa', 'OtpGenerateData'),
|
||||
'PasskeyInfo': ('app.schemas.mfa', 'PasskeyInfo'),
|
||||
'PasskeyOptions': ('app.schemas.mfa', 'PasskeyOptions'),
|
||||
'PasskeyStartData': ('app.schemas.mfa', 'PasskeyStartData'),
|
||||
'Path': ('app.schemas.transfer', 'Path'),
|
||||
'PerformanceSnapshot': ('app.schemas.monitoring', 'PerformanceSnapshot'),
|
||||
'Plugin': ('app.schemas.plugin', 'Plugin'),
|
||||
'PluginDashboard': ('app.schemas.plugin', 'PluginDashboard'),
|
||||
'PluginDashboardMetaItem': ('app.schemas.plugin', 'PluginDashboardMetaItem'),
|
||||
'PluginDataResetEventData': ('app.schemas.event', 'PluginDataResetEventData'),
|
||||
'PluginFolderConfigData': ('app.schemas.plugin', 'PluginFolderConfigData'),
|
||||
'PluginFoldersData': ('app.schemas.plugin', 'PluginFoldersData'),
|
||||
'PluginMarketSyncData': ('app.schemas.system', 'PluginMarketSyncData'),
|
||||
'PluginMarketSyncRequest': ('app.schemas.system', 'PluginMarketSyncRequest'),
|
||||
'PluginMemoryInfo': ('app.schemas.plugin', 'PluginMemoryInfo'),
|
||||
'PluginRating': ('app.schemas.plugin', 'PluginRating'),
|
||||
'PluginRatingMap': ('app.schemas.plugin', 'PluginRatingMap'),
|
||||
'PluginRatingRequest': ('app.schemas.plugin', 'PluginRatingRequest'),
|
||||
'PluginReleaseData': ('app.schemas.plugin', 'PluginReleaseData'),
|
||||
'PluginReleaseItem': ('app.schemas.plugin', 'PluginReleaseItem'),
|
||||
'PluginRemoteInfo': ('app.schemas.plugin', 'PluginRemoteInfo'),
|
||||
'PluginSidebarNavItem': ('app.schemas.plugin', 'PluginSidebarNavItem'),
|
||||
'PluginWorkflowActionGroup': ('app.schemas.workflow', 'PluginWorkflowActionGroup'),
|
||||
'ProcessInfo': ('app.schemas.dashboard', 'ProcessInfo'),
|
||||
'ProgressKeyData': ('app.schemas.common', 'ProgressKeyData'),
|
||||
'RadarrMovie': ('app.schemas.servarr', 'RadarrMovie'),
|
||||
'RateLimitExceededException': ('app.schemas.exception', 'RateLimitExceededException'),
|
||||
'RecommendMediaSource': ('app.schemas.event', 'RecommendMediaSource'),
|
||||
'RecommendSourceEventData': ('app.schemas.event', 'RecommendSourceEventData'),
|
||||
'RefreshMediaItem': ('app.schemas.mediaserver', 'RefreshMediaItem'),
|
||||
'RequestMetrics': ('app.schemas.monitoring', 'RequestMetrics'),
|
||||
'RequiredMediaIdentityMixin': ('app.schemas.music', 'RequiredMediaIdentityMixin'),
|
||||
'ResourceDownloadEventData': ('app.schemas.event', 'ResourceDownloadEventData'),
|
||||
'ResourceSelectionEventData': ('app.schemas.event', 'ResourceSelectionEventData'),
|
||||
'Response': ('app.schemas.response', 'Response'),
|
||||
'RootModel': ('app.schemas.mcp', 'RootModel'),
|
||||
'RuleTestData': ('app.schemas.system', 'RuleTestData'),
|
||||
'ScheduleInfo': ('app.schemas.dashboard', 'ScheduleInfo'),
|
||||
'ScheduleProgress': ('app.schemas.dashboard', 'ScheduleProgress'),
|
||||
'SearchLastContextData': ('app.schemas.search', 'SearchLastContextData'),
|
||||
'SearchRecommendStatusData': ('app.schemas.search', 'SearchRecommendStatusData'),
|
||||
'ServarrFormatItem': ('app.schemas.servarr', 'ServarrFormatItem'),
|
||||
'ServarrIdResponse': ('app.schemas.servarr', 'ServarrIdResponse'),
|
||||
'ServarrImage': ('app.schemas.servarr', 'ServarrImage'),
|
||||
'ServarrLanguage': ('app.schemas.servarr', 'ServarrLanguage'),
|
||||
'ServarrLanguageProfile': ('app.schemas.servarr', 'ServarrLanguageProfile'),
|
||||
'ServarrLanguageProfileItem': ('app.schemas.servarr', 'ServarrLanguageProfileItem'),
|
||||
'ServarrQuality': ('app.schemas.servarr', 'ServarrQuality'),
|
||||
'ServarrQualityProfile': ('app.schemas.servarr', 'ServarrQualityProfile'),
|
||||
'ServarrQualityProfileItem': ('app.schemas.servarr', 'ServarrQualityProfileItem'),
|
||||
'ServarrRootFolder': ('app.schemas.servarr', 'ServarrRootFolder'),
|
||||
'ServarrSystemStatus': ('app.schemas.servarr', 'ServarrSystemStatus'),
|
||||
'ServarrTag': ('app.schemas.servarr', 'ServarrTag'),
|
||||
'ServarrVersion': ('app.schemas.servarr', 'ServarrVersion'),
|
||||
'ServiceClientInfo': ('app.schemas.common', 'ServiceClientInfo'),
|
||||
'ServiceInfo': ('app.schemas.system', 'ServiceInfo'),
|
||||
'Set': ('app.schemas.notification', 'Set'),
|
||||
'Site': ('app.schemas.workflow', 'Site'),
|
||||
'SiteAuth': ('app.schemas.site', 'SiteAuth'),
|
||||
'SiteCategory': ('app.schemas.site', 'SiteCategory'),
|
||||
'SiteCookieUpdate': ('app.schemas.site', 'SiteCookieUpdate'),
|
||||
'SiteIconData': ('app.schemas.site', 'SiteIconData'),
|
||||
'SiteMappingData': ('app.schemas.site', 'SiteMappingData'),
|
||||
'SiteStatistic': ('app.schemas.site', 'SiteStatistic'),
|
||||
'SiteUnreadMessage': ('app.schemas.site', 'SiteUnreadMessage'),
|
||||
'SiteUserData': ('app.schemas.site', 'SiteUserData'),
|
||||
'SonarrRatings': ('app.schemas.servarr', 'SonarrRatings'),
|
||||
'SonarrSeason': ('app.schemas.servarr', 'SonarrSeason'),
|
||||
'SonarrSeries': ('app.schemas.servarr', 'SonarrSeries'),
|
||||
'SonarrStatistics': ('app.schemas.servarr', 'SonarrStatistics'),
|
||||
'Statistic': ('app.schemas.dashboard', 'Statistic'),
|
||||
'Storage': ('app.schemas.dashboard', 'Storage'),
|
||||
'StorageAuthUrlData': ('app.schemas.storage', 'StorageAuthUrlData'),
|
||||
'StorageConf': ('app.schemas.system', 'StorageConf'),
|
||||
'StorageLoginStatusData': ('app.schemas.storage', 'StorageLoginStatusData'),
|
||||
'StorageOperSelectionEventData': ('app.schemas.event', 'StorageOperSelectionEventData'),
|
||||
'StorageQrCodeData': ('app.schemas.storage', 'StorageQrCodeData'),
|
||||
'StorageQueryError': ('app.schemas.exception', 'StorageQueryError'),
|
||||
'StorageSchema': ('app.schemas.file', 'StorageSchema'),
|
||||
'StorageTransType': ('app.schemas.file', 'StorageTransType'),
|
||||
'StorageUsage': ('app.schemas.file', 'StorageUsage'),
|
||||
'SubscrbieInfo': ('app.schemas.subscribe', 'SubscrbieInfo'),
|
||||
'Subscribe': ('app.schemas.workflow', 'Subscribe'),
|
||||
'SubscribeCompletionCheckEventData': ('app.schemas.event', 'SubscribeCompletionCheckEventData'),
|
||||
'SubscribeDownloadFileInfo': ('app.schemas.subscribe', 'SubscribeDownloadFileInfo'),
|
||||
'SubscribeEpisodeInfo': ('app.schemas.subscribe', 'SubscribeEpisodeInfo'),
|
||||
'SubscribeEpisodesRefreshEventData': ('app.schemas.event', 'SubscribeEpisodesRefreshEventData'),
|
||||
'SubscribeLibraryFileInfo': ('app.schemas.subscribe', 'SubscribeLibraryFileInfo'),
|
||||
'SubscribeModifiedEventData': ('app.schemas.event', 'SubscribeModifiedEventData'),
|
||||
'SubscribeShare': ('app.schemas.subscribe', 'SubscribeShare'),
|
||||
'SubscribeShareStatistics': ('app.schemas.subscribe', 'SubscribeShareStatistics'),
|
||||
'Subscription': ('app.schemas.message', 'Subscription'),
|
||||
'SubscriptionMessage': ('app.schemas.message', 'SubscriptionMessage'),
|
||||
'SubtitleDownloadData': ('app.schemas.download', 'SubtitleDownloadData'),
|
||||
'SubtitleInfo': ('app.schemas.search', 'SubtitleInfo'),
|
||||
'SystemEnvironmentUpdateData': ('app.schemas.system', 'SystemEnvironmentUpdateData'),
|
||||
'SystemModuleInfo': ('app.schemas.system', 'SystemModuleInfo'),
|
||||
'SystemModuleListData': ('app.schemas.system', 'SystemModuleListData'),
|
||||
'TMDbException': ('app.schemas.exception', 'TMDbException'),
|
||||
'Tag': ('app.schemas.context', 'Tag'),
|
||||
'TimeData': ('app.schemas.common', 'TimeData'),
|
||||
'TmdbEpisode': ('app.schemas.tmdb', 'TmdbEpisode'),
|
||||
'TmdbEpisodeCredit': ('app.schemas.tmdb', 'TmdbEpisodeCredit'),
|
||||
'TmdbEpisodeCrew': ('app.schemas.tmdb', 'TmdbEpisodeCrew'),
|
||||
'TmdbEpisodeGuestStar': ('app.schemas.tmdb', 'TmdbEpisodeGuestStar'),
|
||||
'TmdbRecognitionCacheData': ('app.schemas.tmdb', 'TmdbRecognitionCacheData'),
|
||||
'TmdbRecognitionCacheItem': ('app.schemas.tmdb', 'TmdbRecognitionCacheItem'),
|
||||
'TmdbSeason': ('app.schemas.tmdb', 'TmdbSeason'),
|
||||
'Token': ('app.schemas.token', 'Token'),
|
||||
'TokenPayload': ('app.schemas.token', 'TokenPayload'),
|
||||
'ToolCallData': ('app.schemas.mcp', 'ToolCallData'),
|
||||
'ToolCallRequest': ('app.schemas.mcp', 'ToolCallRequest'),
|
||||
'ToolResult': ('app.schemas.agent', 'ToolResult'),
|
||||
'TorrentCacheData': ('app.schemas.cache', 'TorrentCacheData'),
|
||||
'TorrentCacheItem': ('app.schemas.cache', 'TorrentCacheItem'),
|
||||
'TorrentInfo': ('app.schemas.system', 'TorrentInfo'),
|
||||
'TorrentReidentifyData': ('app.schemas.cache', 'TorrentReidentifyData'),
|
||||
'TransferDirectoryConf': ('app.schemas.system', 'TransferDirectoryConf'),
|
||||
'TransferHistory': ('app.schemas.history', 'TransferHistory'),
|
||||
'TransferHistoryPage': ('app.schemas.history', 'TransferHistoryPage'),
|
||||
'TransferInfo': ('app.schemas.transfer', 'TransferInfo'),
|
||||
'TransferInterceptEventData': ('app.schemas.event', 'TransferInterceptEventData'),
|
||||
'TransferJob': ('app.schemas.transfer', 'TransferJob'),
|
||||
'TransferJobTask': ('app.schemas.transfer', 'TransferJobTask'),
|
||||
'TransferOverwriteCheckEventData': ('app.schemas.event', 'TransferOverwriteCheckEventData'),
|
||||
'TransferRenameBuildEventData': ('app.schemas.event', 'TransferRenameBuildEventData'),
|
||||
'TransferRenameEventData': ('app.schemas.event', 'TransferRenameEventData'),
|
||||
'TransferTorrent': ('app.schemas.transfer', 'TransferTorrent'),
|
||||
'TypeAdapter': ('app.schemas.mcp', 'TypeAdapter'),
|
||||
'TypeAlias': ('app.schemas.mcp', 'TypeAlias'),
|
||||
'TypeAliasType': ('app.schemas.common', 'TypeAliasType'),
|
||||
'TypeVar': ('app.schemas.response', 'TypeVar'),
|
||||
'TypedDict': ('app.schemas.user', 'TypedDict'),
|
||||
'Union': ('app.schemas.mcp', 'Union'),
|
||||
'User': ('app.schemas.user', 'User'),
|
||||
'UserBase': ('app.schemas.user', 'UserBase'),
|
||||
'UserCreate': ('app.schemas.user', 'UserCreate'),
|
||||
'UserInDB': ('app.schemas.user', 'UserInDB'),
|
||||
'UserInDBBase': ('app.schemas.user', 'UserInDBBase'),
|
||||
'UserMessage': ('app.schemas.agent', 'UserMessage'),
|
||||
'UserPermissions': ('app.schemas.user', 'UserPermissions'),
|
||||
'UserUpdate': ('app.schemas.user', 'UserUpdate'),
|
||||
'ValidationIssue': ('app.schemas.response', 'ValidationIssue'),
|
||||
'ValueData': ('app.schemas.common', 'ValueData'),
|
||||
'WINDOWS_DRIVE_PATTERN': ('app.schemas.file', 'WINDOWS_DRIVE_PATTERN'),
|
||||
'WebMessageItem': ('app.schemas.message', 'WebMessageItem'),
|
||||
'WebhookEventInfo': ('app.schemas.mediaserver', 'WebhookEventInfo'),
|
||||
'WechatClawBotData': ('app.schemas.notification', 'WechatClawBotData'),
|
||||
'WechatClawBotKnownTarget': ('app.schemas.notification', 'WechatClawBotKnownTarget'),
|
||||
'Workflow': ('app.schemas.workflow', 'Workflow'),
|
||||
'WorkflowActionDefinition': ('app.schemas.workflow', 'WorkflowActionDefinition'),
|
||||
'WorkflowExecutionConfig': ('app.schemas.workflow', 'WorkflowExecutionConfig'),
|
||||
'WorkflowExecutionState': ('app.schemas.workflow', 'WorkflowExecutionState'),
|
||||
'WorkflowNodeState': ('app.schemas.workflow', 'WorkflowNodeState'),
|
||||
'WorkflowRuntimeState': ('app.schemas.workflow', 'WorkflowRuntimeState'),
|
||||
'WorkflowShare': ('app.schemas.workflow', 'WorkflowShare'),
|
||||
'compute_subscribe_completed_episode': ('app.schemas.subscribe', 'compute_subscribe_completed_episode'),
|
||||
'dataclass': ('app.schemas.system', 'dataclass'),
|
||||
'datetime': ('app.schemas.monitoring', 'datetime'),
|
||||
'field_serializer': ('app.schemas.agent', 'field_serializer'),
|
||||
'field_validator': ('app.schemas.system', 'field_validator'),
|
||||
'json': ('app.schemas.subscribe', 'json'),
|
||||
'model_validator': ('app.schemas.subscribe', 'model_validator'),
|
||||
're': ('app.schemas.file', 're'),
|
||||
}
|
||||
|
||||
SCHEMA_CONFLICTS = {
|
||||
'Any': ['app.schemas.common', 'app.schemas.context', 'app.schemas.event', 'app.schemas.mediaserver', 'app.schemas.message', 'app.schemas.response', 'app.schemas.subscribe', 'app.schemas.system', 'app.schemas.workflow'],
|
||||
'BaseModel': ['app.schemas.agent', 'app.schemas.cache', 'app.schemas.category', 'app.schemas.common', 'app.schemas.context', 'app.schemas.dashboard', 'app.schemas.download', 'app.schemas.event', 'app.schemas.file', 'app.schemas.history', 'app.schemas.llm', 'app.schemas.mediaserver', 'app.schemas.message', 'app.schemas.mfa', 'app.schemas.music', 'app.schemas.monitoring', 'app.schemas.notification', 'app.schemas.plugin', 'app.schemas.response', 'app.schemas.rule', 'app.schemas.search', 'app.schemas.storage', 'app.schemas.openai', 'app.schemas.servarr', 'app.schemas.servcookie', 'app.schemas.site', 'app.schemas.subscribe', 'app.schemas.system', 'app.schemas.tmdb', 'app.schemas.token', 'app.schemas.transfer', 'app.schemas.user', 'app.schemas.workflow', 'app.schemas.mcp'],
|
||||
'ConfigDict': ['app.schemas.agent', 'app.schemas.category', 'app.schemas.history', 'app.schemas.mediaserver', 'app.schemas.response', 'app.schemas.openai', 'app.schemas.servcookie', 'app.schemas.site', 'app.schemas.subscribe', 'app.schemas.user', 'app.schemas.workflow'],
|
||||
'Context': ['app.schemas.context', 'app.schemas.workflow'],
|
||||
'Dict': ['app.schemas.category', 'app.schemas.common', 'app.schemas.context', 'app.schemas.event', 'app.schemas.mediaserver', 'app.schemas.message', 'app.schemas.notification', 'app.schemas.plugin', 'app.schemas.openai', 'app.schemas.site', 'app.schemas.subscribe', 'app.schemas.mcp'],
|
||||
'DownloadTask': ['app.schemas.download', 'app.schemas.workflow'],
|
||||
'Enum': ['app.schemas.message', 'app.schemas.notification'],
|
||||
'Field': ['app.schemas.agent', 'app.schemas.cache', 'app.schemas.common', 'app.schemas.context', 'app.schemas.dashboard', 'app.schemas.download', 'app.schemas.event', 'app.schemas.file', 'app.schemas.history', 'app.schemas.llm', 'app.schemas.mediaserver', 'app.schemas.message', 'app.schemas.mfa', 'app.schemas.music', 'app.schemas.notification', 'app.schemas.plugin', 'app.schemas.search', 'app.schemas.storage', 'app.schemas.openai', 'app.schemas.servarr', 'app.schemas.servcookie', 'app.schemas.site', 'app.schemas.subscribe', 'app.schemas.system', 'app.schemas.tmdb', 'app.schemas.token', 'app.schemas.transfer', 'app.schemas.user', 'app.schemas.workflow', 'app.schemas.mcp'],
|
||||
'FileItem': ['app.schemas.event', 'app.schemas.file', 'app.schemas.transfer', 'app.schemas.workflow'],
|
||||
'FilterRuleGroup': ['app.schemas.rule', 'app.schemas.system'],
|
||||
'JsonData': ['app.schemas.agent', 'app.schemas.common', 'app.schemas.context', 'app.schemas.dashboard', 'app.schemas.event', 'app.schemas.history', 'app.schemas.mediaserver', 'app.schemas.message', 'app.schemas.mfa', 'app.schemas.music', 'app.schemas.plugin', 'app.schemas.search', 'app.schemas.openai', 'app.schemas.servcookie', 'app.schemas.site', 'app.schemas.user', 'app.schemas.workflow', 'app.schemas.mcp'],
|
||||
'List': ['app.schemas.agent', 'app.schemas.context', 'app.schemas.event', 'app.schemas.history', 'app.schemas.mediaserver', 'app.schemas.message', 'app.schemas.monitoring', 'app.schemas.plugin', 'app.schemas.openai', 'app.schemas.subscribe', 'app.schemas.transfer', 'app.schemas.workflow'],
|
||||
'Literal': ['app.schemas.agent', 'app.schemas.music', 'app.schemas.search', 'app.schemas.servcookie', 'app.schemas.mcp'],
|
||||
'LocaleHelper': ['app.schemas.dashboard', 'app.schemas.response'],
|
||||
'MediaInfo': ['app.schemas.context', 'app.schemas.system', 'app.schemas.transfer', 'app.schemas.workflow'],
|
||||
'MediaSource': ['app.schemas.cache', 'app.schemas.context', 'app.schemas.event', 'app.schemas.history', 'app.schemas.mediaserver', 'app.schemas.music', 'app.schemas.subscribe', 'app.schemas.transfer'],
|
||||
'MediaType': ['app.schemas.mediaserver', 'app.schemas.subscribe'],
|
||||
'MetaInfo': ['app.schemas.context', 'app.schemas.system', 'app.schemas.transfer'],
|
||||
'MusicInfo': ['app.schemas.context', 'app.schemas.music', 'app.schemas.transfer'],
|
||||
'MusicMeta': ['app.schemas.context', 'app.schemas.music', 'app.schemas.transfer'],
|
||||
'MusicTargetEntityType': ['app.schemas.music', 'app.schemas.transfer'],
|
||||
'NotificationChannel': ['app.schemas.event', 'app.schemas.message', 'app.schemas.notification'],
|
||||
'Optional': ['app.schemas.agent', 'app.schemas.cache', 'app.schemas.category', 'app.schemas.common', 'app.schemas.context', 'app.schemas.dashboard', 'app.schemas.download', 'app.schemas.event', 'app.schemas.file', 'app.schemas.history', 'app.schemas.llm', 'app.schemas.mediaserver', 'app.schemas.message', 'app.schemas.mfa', 'app.schemas.music', 'app.schemas.notification', 'app.schemas.plugin', 'app.schemas.response', 'app.schemas.rule', 'app.schemas.storage', 'app.schemas.openai', 'app.schemas.servarr', 'app.schemas.site', 'app.schemas.subscribe', 'app.schemas.system', 'app.schemas.tmdb', 'app.schemas.token', 'app.schemas.transfer', 'app.schemas.user', 'app.schemas.workflow', 'app.schemas.mcp'],
|
||||
'OptionalMediaIdentityMixin': ['app.schemas.context', 'app.schemas.event', 'app.schemas.history', 'app.schemas.mediaserver', 'app.schemas.music', 'app.schemas.subscribe', 'app.schemas.transfer'],
|
||||
'Path': ['app.schemas.event', 'app.schemas.file', 'app.schemas.mediaserver', 'app.schemas.transfer'],
|
||||
'RequiredMediaIdentityMixin': ['app.schemas.event', 'app.schemas.music'],
|
||||
'RootModel': ['app.schemas.category', 'app.schemas.common', 'app.schemas.context', 'app.schemas.mediaserver', 'app.schemas.mfa', 'app.schemas.plugin', 'app.schemas.site', 'app.schemas.mcp'],
|
||||
'Set': ['app.schemas.event', 'app.schemas.notification'],
|
||||
'Site': ['app.schemas.site', 'app.schemas.workflow'],
|
||||
'Subscribe': ['app.schemas.subscribe', 'app.schemas.workflow'],
|
||||
'SubtitleInfo': ['app.schemas.context', 'app.schemas.search'],
|
||||
'TorrentInfo': ['app.schemas.context', 'app.schemas.search', 'app.schemas.system'],
|
||||
'Union': ['app.schemas.agent', 'app.schemas.common', 'app.schemas.context', 'app.schemas.mediaserver', 'app.schemas.message', 'app.schemas.plugin', 'app.schemas.search', 'app.schemas.site', 'app.schemas.transfer', 'app.schemas.mcp'],
|
||||
'UserPermissions': ['app.schemas.token', 'app.schemas.user'],
|
||||
'dataclass': ['app.schemas.notification', 'app.schemas.system'],
|
||||
'datetime': ['app.schemas.agent', 'app.schemas.monitoring'],
|
||||
'field_validator': ['app.schemas.event', 'app.schemas.message', 'app.schemas.music', 'app.schemas.response', 'app.schemas.subscribe', 'app.schemas.system'],
|
||||
'model_validator': ['app.schemas.dashboard', 'app.schemas.event', 'app.schemas.mediaserver', 'app.schemas.subscribe'],
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
from typing import Literal, Optional, Union
|
||||
from typing import Literal, Optional
|
||||
|
||||
from pydantic import BaseModel, Field, field_validator
|
||||
|
||||
|
||||
@@ -9,10 +9,6 @@ from app.schemas.types import MediaSource, MusicTargetEntityType
|
||||
from app.schemas.context import MetaInfo, MediaInfo
|
||||
from app.schemas.music import MusicInfo, MusicMeta
|
||||
from app.schemas.file import FileItem
|
||||
from app.schemas.history import DownloadHistory
|
||||
from app.schemas.system import TransferDirectoryConf
|
||||
from app.schemas.tmdb import TmdbEpisode
|
||||
from app.schemas.types import MediaType
|
||||
|
||||
|
||||
class DownloaderTorrent(BaseModel):
|
||||
|
||||
Reference in New Issue
Block a user