mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-06 07:56:52 +08:00
refactor: make download and transfer events durable
This commit is contained in:
@@ -7,6 +7,7 @@ from app.schemas.common import JsonData
|
||||
from app.schemas.types import MediaType, NotificationChannel
|
||||
from app.schemas.file import FileItem
|
||||
from app.schemas.media import OptionalMediaIdentityMixin, RequiredMediaIdentityMixin
|
||||
from app.schemas.transfer import TransferInfo
|
||||
from app.schemas.types import MediaSource
|
||||
|
||||
|
||||
@@ -730,6 +731,31 @@ class SubscribeDeletedEventData(BaseEventData):
|
||||
idempotency_key: Optional[str] = Field(default=None, description="宿主生成的幂等键")
|
||||
|
||||
|
||||
class DownloadAddedEventData(BaseEventData):
|
||||
"""DownloadAdded 广播事件的插件兼容 payload。"""
|
||||
|
||||
hash: str = Field(description="下载任务 hash")
|
||||
context: Any = Field(description="下载上下文对象")
|
||||
username: Optional[str] = Field(default=None, description="发起下载的用户")
|
||||
downloader: Optional[str] = Field(default=None, description="下载器名称")
|
||||
episodes: List[int] = Field(default_factory=list, description="下载剧集列表")
|
||||
source: Optional[str] = Field(default=None, description="下载来源")
|
||||
idempotency_key: Optional[str] = Field(default=None, description="宿主生成的幂等键")
|
||||
|
||||
|
||||
class TransferResultEventData(BaseEventData):
|
||||
"""TransferComplete/Failed 共用的插件兼容 payload。"""
|
||||
|
||||
fileitem: Optional[FileItem] = Field(default=None, description="源文件项")
|
||||
meta: Any = Field(default=None, description="文件名解析对象")
|
||||
mediainfo: Any = Field(default=None, description="媒体信息对象")
|
||||
transferinfo: Optional[TransferInfo] = Field(default=None, description="整理结果")
|
||||
downloader: Optional[str] = Field(default=None, description="下载器名称")
|
||||
download_hash: Optional[str] = Field(default=None, description="下载任务 hash")
|
||||
transfer_history_id: Optional[int] = Field(default=None, description="整理历史 ID")
|
||||
idempotency_key: Optional[str] = Field(default=None, description="宿主生成的幂等键")
|
||||
|
||||
|
||||
class SubscribeCompletionCheckEventData(ChainEventData):
|
||||
"""
|
||||
SubscribeCompletionCheck 事件的数据模型
|
||||
|
||||
@@ -85,6 +85,7 @@ SCHEMA_EXPORTS = {
|
||||
'DiscoverSourceEventData': ('app.schemas.event', 'DiscoverSourceEventData'),
|
||||
'Discriminator': ('app.schemas.context', 'Discriminator'),
|
||||
'DownloadAddedData': ('app.schemas.download', 'DownloadAddedData'),
|
||||
'DownloadAddedEventData': ('app.schemas.event', 'DownloadAddedEventData'),
|
||||
'DownloadDirectory': ('app.schemas.download', 'DownloadDirectory'),
|
||||
'DownloadHistory': ('app.schemas.history', 'DownloadHistory'),
|
||||
'DownloadTask': ('app.schemas.workflow', 'DownloadTask'),
|
||||
@@ -369,6 +370,7 @@ SCHEMA_EXPORTS = {
|
||||
'TransferOverwriteCheckEventData': ('app.schemas.event', 'TransferOverwriteCheckEventData'),
|
||||
'TransferRenameBuildEventData': ('app.schemas.event', 'TransferRenameBuildEventData'),
|
||||
'TransferRenameEventData': ('app.schemas.event', 'TransferRenameEventData'),
|
||||
'TransferResultEventData': ('app.schemas.event', 'TransferResultEventData'),
|
||||
'TransferTorrent': ('app.schemas.transfer', 'TransferTorrent'),
|
||||
'TypeAdapter': ('app.schemas.mcp', 'TypeAdapter'),
|
||||
'TypeAlias': ('app.schemas.mcp', 'TypeAlias'),
|
||||
@@ -441,6 +443,7 @@ SCHEMA_CONFLICTS = {
|
||||
'Subscribe': ['app.schemas.subscribe', 'app.schemas.workflow'],
|
||||
'SubtitleInfo': ['app.schemas.context', 'app.schemas.search'],
|
||||
'TorrentInfo': ['app.schemas.context', 'app.schemas.search', 'app.schemas.system'],
|
||||
'TransferInfo': ['app.schemas.event', 'app.schemas.transfer'],
|
||||
'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'],
|
||||
|
||||
Reference in New Issue
Block a user