From 0b7cf305a0dd86d5f861d14e750d4deb4a025a2b Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sun, 16 Feb 2025 13:45:15 +0800 Subject: [PATCH] add action templates --- app/actions/fetch_downloads.py | 0 app/schemas/__init__.py | 1 + app/schemas/download.py | 12 ++++++++++++ app/schemas/workflow.py | 7 +++++-- 4 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 app/actions/fetch_downloads.py create mode 100644 app/schemas/download.py 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="消息列表")