mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-05 23:47:41 +08:00
fix actions
This commit is contained in:
@@ -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,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
|
||||||
|
|||||||
@@ -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)} 个资源")
|
||||||
|
|||||||
@@ -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}"
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
Reference in New Issue
Block a user