fix actions

This commit is contained in:
jxxghp
2025-03-02 11:15:52 +08:00
parent 37558e3135
commit 0d63dfb931
6 changed files with 17 additions and 15 deletions
+2 -2
View File
@@ -90,8 +90,8 @@ class FetchTorrentsAction(BaseAction):
for torrent in torrents: for torrent in torrents:
self._torrents.append(torrent) self._torrents.append(torrent)
# 随机休眠 10-60秒 # 随机休眠 5-30秒
sleep_time = random.randint(10, 60) sleep_time = random.randint(5, 30)
logger.info(f"随机休眠 {sleep_time} 秒 ...") logger.info(f"随机休眠 {sleep_time} 秒 ...")
time.sleep(sleep_time) time.sleep(sleep_time)
+4 -5
View File
@@ -4,6 +4,7 @@ from pydantic import Field
from app.actions import BaseAction from app.actions import BaseAction
from app.core.config import global_vars from app.core.config import global_vars
from app.log import logger
from app.schemas import ActionParams, ActionContext from app.schemas import ActionParams, ActionContext
@@ -12,7 +13,6 @@ class FilterMediasParams(ActionParams):
过滤媒体数据参数 过滤媒体数据参数
""" """
type: Optional[str] = Field(None, description="媒体类型 (电影/电视剧)") type: Optional[str] = Field(None, description="媒体类型 (电影/电视剧)")
category: Optional[str] = Field(None, description="媒体类别 (二级分类)")
vote: Optional[int] = Field(0, description="评分") vote: Optional[int] = Field(0, description="评分")
year: Optional[str] = Field(None, description="年份") year: Optional[str] = Field(None, description="年份")
@@ -53,16 +53,15 @@ class FilterMediasAction(BaseAction):
break break
if params.type and media.type != params.type: if params.type and media.type != params.type:
continue continue
if params.category and media.category != params.category:
continue
if params.vote and media.vote_average < params.vote: if params.vote and media.vote_average < params.vote:
continue continue
if params.year and media.year != params.year: if params.year and media.year != params.year:
continue continue
self._medias.append(media) self._medias.append(media)
if self._medias: logger.info(f"过滤后剩余 {len(self._medias)} 条媒体数据")
context.medias = self._medias
context.medias = self._medias
self.job_done(f"过滤后剩余 {len(self._medias)} 条媒体数据") self.job_done(f"过滤后剩余 {len(self._medias)} 条媒体数据")
return context return context
+3
View File
@@ -5,6 +5,7 @@ from pydantic import Field
from app.actions import BaseAction, ActionChain from app.actions import BaseAction, ActionChain
from app.core.config import global_vars from app.core.config import global_vars
from app.helper.torrent import TorrentHelper from app.helper.torrent import TorrentHelper
from app.log import logger
from app.schemas import ActionParams, ActionContext from app.schemas import ActionParams, ActionContext
@@ -78,6 +79,8 @@ class FilterTorrentsAction(BaseAction):
): ):
self._torrents.append(torrent) self._torrents.append(torrent)
logger.info(f"过滤后剩余 {len(self._torrents)} 个资源")
context.torrents = self._torrents context.torrents = self._torrents
self.job_done(f"过滤后剩余 {len(self._torrents)} 个资源") self.job_done(f"过滤后剩余 {len(self._torrents)} 个资源")
+3 -3
View File
@@ -47,10 +47,10 @@ class SendMessageAction(BaseAction):
发送messages中的消息 发送messages中的消息
""" """
params = SendMessageParams(**params) params = SendMessageParams(**params)
msg_text = f"当前进度:{context.__progress__}%" msg_text = f"当前进度:{context.progress}%"
index = 1 index = 1
if context.__execute_history__: if context.execute_history:
for history in context.__execute_history__: for history in context.execute_history:
if not history.message: if not history.message:
continue continue
msg_text += f"\n{index}. {history.action}{history.message}" msg_text += f"\n{index}. {history.action}{history.message}"
+3 -3
View File
@@ -91,7 +91,7 @@ class WorkflowExecutor:
if not self.success: if not self.success:
break break
if not self.queue: if not self.queue:
sleep(1) sleep(0.1)
continue continue
# 取出队首节点 # 取出队首节点
node_id = self.queue.popleft() node_id = self.queue.popleft()
@@ -135,10 +135,10 @@ class WorkflowExecutor:
try: try:
self.finished_actions += 1 self.finished_actions += 1
# 更新当前进度 # 更新当前进度
self.context.__progress__ = round(self.finished_actions / self.total_actions) * 100 self.context.progress = round(self.finished_actions / self.total_actions) * 100
# 补充执行历史 # 补充执行历史
self.context.__execute_history__.append( self.context.execute_history.append(
ActionExecution( ActionExecution(
action=action.name, action=action.name,
result=state, result=state,
+2 -2
View File
@@ -70,8 +70,8 @@ class ActionContext(BaseModel):
downloads: Optional[List[DownloadTask]] = Field([], description="下载任务列表") downloads: Optional[List[DownloadTask]] = Field([], description="下载任务列表")
sites: Optional[List[Site]] = Field([], description="站点列表") sites: Optional[List[Site]] = Field([], description="站点列表")
subscribes: Optional[List[Subscribe]] = Field([], description="订阅列表") subscribes: Optional[List[Subscribe]] = Field([], description="订阅列表")
__execute_history__: Optional[List[ActionExecution]] = Field([], description="执行历史") execute_history: Optional[List[ActionExecution]] = Field([], description="执行历史")
__progress__: Optional[int] = Field(0, description="执行进度(%") progress: Optional[int] = Field(0, description="执行进度(%")
class ActionFlow(BaseModel): class ActionFlow(BaseModel):