diff --git a/app/actions/fetch_downloads.py b/app/actions/fetch_downloads.py new file mode 100644 index 00000000..e69de29b diff --git a/app/schemas/__init__.py b/app/schemas/__init__.py index af94d83c..0a627bbe 100644 --- a/app/schemas/__init__.py +++ b/app/schemas/__init__.py @@ -20,3 +20,4 @@ from .exception import * from .system import * from .event import * from .workflow import * +from .download import * diff --git a/app/schemas/download.py b/app/schemas/download.py new file mode 100644 index 00000000..d070b417 --- /dev/null +++ b/app/schemas/download.py @@ -0,0 +1,12 @@ +from typing import Optional + +from pydantic import BaseModel, Field + + +class DownloadTask(BaseModel): + """ + 下载任务 + """ + download_id: Optional[str] = Field(None, description="任务ID") + downloader: Optional[str] = Field(None, description="下载器") + completed: Optional[bool] = Field(False, description="是否完成") diff --git a/app/schemas/workflow.py b/app/schemas/workflow.py index 32df0cd9..fa37f6a7 100644 --- a/app/schemas/workflow.py +++ b/app/schemas/workflow.py @@ -2,7 +2,7 @@ from typing import Optional, List, Tuple from pydantic import BaseModel, Field -from app.schemas import Context, MediaInfo, FileItem, Site, Subscribe, Notification +from app.schemas import Context, MediaInfo, FileItem, Site, Subscribe, Notification, DownloadTask class Workflow(BaseModel): @@ -27,6 +27,9 @@ class Action(BaseModel): """ name: Optional[str] = Field(None, description="动作名称") description: Optional[str] = Field(None, description="动作描述") + loop: Optional[bool] = Field(False, description="是否需要循环") + loop_interval: Optional[int] = Field(0, description="循环间隔 (秒)") + params: Optional[dict] = Field({}, description="参数") class ActionContext(BaseModel): @@ -37,7 +40,7 @@ class ActionContext(BaseModel): torrents: Optional[List[Context]] = Field([], description="资源列表") medias: Optional[List[MediaInfo]] = Field([], description="媒体列表") fileitems: Optional[List[FileItem]] = Field([], description="文件列表") - downloads: Optional[List[Tuple[str, str]]] = Field([], description="下载任务列表") + downloads: Optional[List[DownloadTask]] = Field([], description="下载任务列表") sites: Optional[List[Site]] = Field([], description="站点列表") subscribes: Optional[List[Subscribe]] = Field([], description="订阅列表") messages: Optional[List[Notification]] = Field([], description="消息列表")