fix AddDownloadAction

This commit is contained in:
jxxghp
2025-02-19 15:24:13 +08:00
parent 15e1fb61ac
commit 351029a842
13 changed files with 50 additions and 57 deletions
+37 -8
View File
@@ -1,12 +1,19 @@
from pydantic import Field
from app.actions import BaseAction
from app.schemas import ActionParams, ActionContext
from app.chain.download import DownloadChain
from app.chain.media import MediaChain
from app.core.metainfo import MetaInfo
from app.log import logger
from app.schemas import ActionParams, ActionContext, DownloadTask
class AddDownloadParams(ActionParams):
"""
添加下载资源参数
"""
pass
downloader: str = Field(None, description="下载器")
save_path: str = Field(None, description="保存路径")
class AddDownloadAction(BaseAction):
@@ -14,6 +21,9 @@ class AddDownloadAction(BaseAction):
添加下载资源
"""
# 已添加的下载
_added_downloads = []
@property
def name(self) -> str:
return "添加下载资源"
@@ -22,13 +32,32 @@ class AddDownloadAction(BaseAction):
def description(self) -> str:
return "根据资源列表添加下载任务"
@property
def done(self) -> bool:
return True
@property
def success(self) -> bool:
return True
return True if self._added_downloads else False
async def execute(self, params: AddDownloadParams, context: ActionContext) -> ActionContext:
pass
"""
将上下文中的torrents添加到下载任务中
"""
for t in context.torrents:
if not t.meta_info:
t.meta_info = MetaInfo(title=t.title, subtitle=t.description)
if not t.media_info:
t.media_info = MediaChain().recognize_media(meta=t.meta_info)
if not t.media_info:
logger.warning(f"{t.title} 未识别到媒体信息,无法下载")
continue
did = DownloadChain().download_single(context=t,
downloader=params.downloader,
save_path=params.save_path)
if did:
self._added_downloads.append(did)
if self._added_downloads:
logger.info(f"已添加 {len(self._added_downloads)} 个下载任务")
context.downloads.extend(
[DownloadTask(download_id=did, downloader=params.downloader) for did in self._added_downloads]
)
self.job_done()
return context