mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-04 23:17:20 +08:00
feat: 升级 V3 默认运行时至 Python 3.14 与 Debian Trixie (#6382)
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
from abc import ABC, abstractmethod
|
||||
from typing import Any, Union
|
||||
from typing import Any, ClassVar, Union
|
||||
|
||||
from app.chain import ChainBase
|
||||
from app.application.configuration import get_configured_system_config as SystemConfigOper
|
||||
@@ -17,6 +17,11 @@ class BaseAction(ABC):
|
||||
工作流动作基类
|
||||
"""
|
||||
|
||||
# 工作流编辑器和运行管理器读取的动作级静态元数据。
|
||||
name: ClassVar[str]
|
||||
description: ClassVar[str]
|
||||
data: ClassVar[dict[str, Any]]
|
||||
|
||||
# 动作ID
|
||||
_action_id = None
|
||||
# 完成标志
|
||||
@@ -34,24 +39,6 @@ class BaseAction(ABC):
|
||||
self._message = ""
|
||||
self.systemconfigoper = SystemConfigOper()
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
@abstractmethod
|
||||
def name(cls) -> str: # noqa
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
@abstractmethod
|
||||
def description(cls) -> str: # noqa
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
@abstractmethod
|
||||
def data(cls) -> dict: # noqa
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def get_contract(cls) -> dict:
|
||||
"""
|
||||
|
||||
@@ -40,20 +40,9 @@ class AddDownloadAction(BaseAction):
|
||||
self._added_downloads = []
|
||||
self._has_error = False
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def name(cls) -> str: # noqa
|
||||
return "添加下载"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def description(cls) -> str: # noqa
|
||||
return "根据资源列表添加下载任务"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def data(cls) -> dict: # noqa
|
||||
return AddDownloadParams().model_dump()
|
||||
name = "添加下载"
|
||||
description = "根据资源列表添加下载任务"
|
||||
data = AddDownloadParams().model_dump()
|
||||
|
||||
@property
|
||||
def success(self) -> bool:
|
||||
|
||||
@@ -30,20 +30,9 @@ class AddSubscribeAction(BaseAction):
|
||||
self._added_subscribes = []
|
||||
self._has_error = False
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def name(cls) -> str: # noqa
|
||||
return "添加订阅"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def description(cls) -> str: # noqa
|
||||
return "根据媒体列表添加订阅"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def data(cls) -> dict: # noqa
|
||||
return AddSubscribeParams().model_dump()
|
||||
name = "添加订阅"
|
||||
description = "根据媒体列表添加订阅"
|
||||
data = AddSubscribeParams().model_dump()
|
||||
|
||||
@property
|
||||
def success(self) -> bool:
|
||||
|
||||
@@ -27,20 +27,9 @@ class FetchDownloadsAction(BaseAction):
|
||||
super().__init__(action_id)
|
||||
self._downloads = []
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def name(cls) -> str: # noqa
|
||||
return "获取下载任务"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def description(cls) -> str: # noqa
|
||||
return "获取下载队列中的任务状态"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def data(cls) -> dict: # noqa
|
||||
return FetchDownloadsParams().model_dump()
|
||||
name = "获取下载任务"
|
||||
description = "获取下载队列中的任务状态"
|
||||
data = FetchDownloadsParams().model_dump()
|
||||
|
||||
@property
|
||||
def success(self) -> bool:
|
||||
|
||||
@@ -115,20 +115,9 @@ class FetchMediasAction(BaseAction):
|
||||
if event_data.extra_sources:
|
||||
self.__inner_sources.extend([s.model_dump() for s in event_data.extra_sources])
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def name(cls) -> str: # noqa
|
||||
return "获取媒体数据"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def description(cls) -> str: # noqa
|
||||
return "获取榜单等媒体数据列表"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def data(cls) -> dict: # noqa
|
||||
return FetchMediasParams().model_dump()
|
||||
name = "获取媒体数据"
|
||||
description = "获取榜单等媒体数据列表"
|
||||
data = FetchMediasParams().model_dump()
|
||||
|
||||
@property
|
||||
def success(self) -> bool:
|
||||
|
||||
@@ -40,20 +40,9 @@ class FetchRssAction(BaseAction):
|
||||
self._rss_torrents = []
|
||||
self._has_error = False
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def name(cls) -> str: # noqa
|
||||
return "获取RSS资源"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def description(cls) -> str: # noqa
|
||||
return "订阅RSS地址获取资源"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def data(cls) -> dict: # noqa
|
||||
return FetchRssParams().model_dump()
|
||||
name = "获取RSS资源"
|
||||
description = "订阅RSS地址获取资源"
|
||||
data = FetchRssParams().model_dump()
|
||||
|
||||
@property
|
||||
def success(self) -> bool:
|
||||
|
||||
@@ -41,20 +41,9 @@ class FetchTorrentsAction(BaseAction):
|
||||
super().__init__(action_id)
|
||||
self._torrents = []
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def name(cls) -> str: # noqa
|
||||
return "搜索站点资源"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def description(cls) -> str: # noqa
|
||||
return "搜索站点种子资源列表"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def data(cls) -> dict: # noqa
|
||||
return FetchTorrentsParams().model_dump()
|
||||
name = "搜索站点资源"
|
||||
description = "搜索站点种子资源列表"
|
||||
data = FetchTorrentsParams().model_dump()
|
||||
|
||||
@property
|
||||
def success(self) -> bool:
|
||||
|
||||
@@ -32,20 +32,9 @@ class FilterMediasAction(BaseAction):
|
||||
super().__init__(action_id)
|
||||
self._medias = []
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def name(cls) -> str: # noqa
|
||||
return "过滤媒体数据"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def description(cls) -> str: # noqa
|
||||
return "对媒体数据列表进行过滤"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def data(cls) -> dict: # noqa
|
||||
return FilterMediasParams().model_dump()
|
||||
name = "过滤媒体数据"
|
||||
description = "对媒体数据列表进行过滤"
|
||||
data = FilterMediasParams().model_dump()
|
||||
|
||||
@property
|
||||
def success(self) -> bool:
|
||||
|
||||
@@ -37,20 +37,9 @@ class FilterTorrentsAction(BaseAction):
|
||||
super().__init__(action_id)
|
||||
self._torrents = []
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def name(cls) -> str: # noqa
|
||||
return "过滤资源"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def description(cls) -> str: # noqa
|
||||
return "对资源列表数据进行过滤"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def data(cls) -> dict: # noqa
|
||||
return FilterTorrentsParams().model_dump()
|
||||
name = "过滤资源"
|
||||
description = "对资源列表数据进行过滤"
|
||||
data = FilterTorrentsParams().model_dump()
|
||||
|
||||
@property
|
||||
def success(self) -> bool:
|
||||
|
||||
@@ -27,20 +27,9 @@ class InvokePluginAction(BaseAction):
|
||||
super().__init__(action_id)
|
||||
self._success = False
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def name(cls) -> str: # noqa
|
||||
return "调用插件"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def description(cls) -> str: # noqa
|
||||
return "调用插件提供的动作"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def data(cls) -> dict: # noqa
|
||||
return InvokePluginParams().model_dump()
|
||||
name = "调用插件"
|
||||
description = "调用插件提供的动作"
|
||||
data = InvokePluginParams().model_dump()
|
||||
|
||||
@property
|
||||
def success(self) -> bool:
|
||||
|
||||
@@ -9,20 +9,9 @@ class NoteAction(BaseAction):
|
||||
|
||||
contract = {}
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def name(cls) -> str: # noqa
|
||||
return "备注"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def description(cls) -> str: # noqa
|
||||
return "给工作流添加备注"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def data(cls) -> dict: # noqa
|
||||
return {}
|
||||
name = "备注"
|
||||
description = "给工作流添加备注"
|
||||
data = {}
|
||||
|
||||
@property
|
||||
def success(self) -> bool:
|
||||
|
||||
@@ -34,20 +34,9 @@ class ScanFileAction(BaseAction):
|
||||
self._fileitems = []
|
||||
self._has_error = False
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def name(cls) -> str: # noqa
|
||||
return "扫描目录"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def description(cls) -> str: # noqa
|
||||
return "扫描目录文件到队列"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def data(cls) -> dict: # noqa
|
||||
return ScanFileParams().model_dump()
|
||||
name = "扫描目录"
|
||||
description = "扫描目录文件到队列"
|
||||
data = ScanFileParams().model_dump()
|
||||
|
||||
@property
|
||||
def success(self) -> bool:
|
||||
|
||||
@@ -30,20 +30,9 @@ class ScrapeFileAction(BaseAction):
|
||||
self._scraped_files = []
|
||||
self._has_error = False
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def name(cls) -> str: # noqa
|
||||
return "刮削文件"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def description(cls) -> str: # noqa
|
||||
return "刮削媒体信息和图片"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def data(cls) -> dict: # noqa
|
||||
return ScrapeFileParams().model_dump()
|
||||
name = "刮削文件"
|
||||
description = "刮削媒体信息和图片"
|
||||
data = ScrapeFileParams().model_dump()
|
||||
|
||||
@property
|
||||
def success(self) -> bool:
|
||||
|
||||
@@ -19,20 +19,9 @@ class SendEventAction(BaseAction):
|
||||
|
||||
contract = {}
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def name(cls) -> str: # noqa
|
||||
return "发送事件"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def description(cls) -> str: # noqa
|
||||
return "发送任务执行事件"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def data(cls) -> dict: # noqa
|
||||
return SendEventParams().model_dump()
|
||||
name = "发送事件"
|
||||
description = "发送任务执行事件"
|
||||
data = SendEventParams().model_dump()
|
||||
|
||||
@property
|
||||
def success(self) -> bool:
|
||||
|
||||
@@ -27,20 +27,9 @@ class SendMessageAction(BaseAction):
|
||||
def __init__(self, action_id: str):
|
||||
super().__init__(action_id)
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def name(cls) -> str: # noqa
|
||||
return "发送消息"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def description(cls) -> str: # noqa
|
||||
return "发送任务执行消息"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def data(cls) -> dict: # noqa
|
||||
return SendMessageParams().model_dump()
|
||||
name = "发送消息"
|
||||
description = "发送任务执行消息"
|
||||
data = SendMessageParams().model_dump()
|
||||
|
||||
@property
|
||||
def success(self) -> bool:
|
||||
|
||||
@@ -41,20 +41,9 @@ class TransferFileAction(BaseAction):
|
||||
self._fileitems = []
|
||||
self._has_error = False
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def name(cls) -> str: # noqa
|
||||
return "整理文件"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def description(cls) -> str: # noqa
|
||||
return "整理队列中的文件"
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
def data(cls) -> dict: # noqa
|
||||
return TransferFileParams().model_dump()
|
||||
name = "整理文件"
|
||||
description = "整理队列中的文件"
|
||||
data = TransferFileParams().model_dump()
|
||||
|
||||
@property
|
||||
def success(self) -> bool:
|
||||
|
||||
Reference in New Issue
Block a user