mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-05 23:47:41 +08:00
Merge pull request #5445 from jxxghp/copilot/analyze-task-loss-reason
This commit is contained in:
+25
-14
@@ -111,12 +111,13 @@ class JobManager:
|
|||||||
"""
|
"""
|
||||||
return schemas.MetaInfo(**task.meta.to_dict())
|
return schemas.MetaInfo(**task.meta.to_dict())
|
||||||
|
|
||||||
def add_task(self, task: TransferTask, state: Optional[str] = "waiting"):
|
def add_task(self, task: TransferTask, state: Optional[str] = "waiting") -> bool:
|
||||||
"""
|
"""
|
||||||
添加整理任务,自动分组到对应的作业中
|
添加整理任务,自动分组到对应的作业中
|
||||||
|
:return: True表示任务已添加,False表示任务无效或已存在(重复)
|
||||||
"""
|
"""
|
||||||
if not any([task, task.meta, task.fileitem]):
|
if not all([task, task.meta, task.fileitem]):
|
||||||
return
|
return False
|
||||||
with job_lock:
|
with job_lock:
|
||||||
__mediaid__ = self.__get_id(task)
|
__mediaid__ = self.__get_id(task)
|
||||||
if __mediaid__ not in self._job_view:
|
if __mediaid__ not in self._job_view:
|
||||||
@@ -134,7 +135,8 @@ class JobManager:
|
|||||||
else:
|
else:
|
||||||
# 不重复添加任务
|
# 不重复添加任务
|
||||||
if any([t.fileitem == task.fileitem for t in self._job_view[__mediaid__].tasks]):
|
if any([t.fileitem == task.fileitem for t in self._job_view[__mediaid__].tasks]):
|
||||||
return
|
logger.debug(f"任务 {task.fileitem.name} 已存在,跳过重复添加")
|
||||||
|
return False
|
||||||
self._job_view[__mediaid__].tasks.append(
|
self._job_view[__mediaid__].tasks.append(
|
||||||
TransferJobTask(
|
TransferJobTask(
|
||||||
fileitem=task.fileitem,
|
fileitem=task.fileitem,
|
||||||
@@ -150,6 +152,7 @@ class JobManager:
|
|||||||
self._season_episodes[__mediaid__] = list(set(self._season_episodes[__mediaid__]))
|
self._season_episodes[__mediaid__] = list(set(self._season_episodes[__mediaid__]))
|
||||||
else:
|
else:
|
||||||
self._season_episodes[__mediaid__] = task.meta.episode_list
|
self._season_episodes[__mediaid__] = task.meta.episode_list
|
||||||
|
return True
|
||||||
|
|
||||||
def running_task(self, task: TransferTask):
|
def running_task(self, task: TransferTask):
|
||||||
"""
|
"""
|
||||||
@@ -724,26 +727,30 @@ class TransferChain(ChainBase, ConfigReloadMixin, metaclass=Singleton):
|
|||||||
|
|
||||||
return ret_status, ret_message
|
return ret_status, ret_message
|
||||||
|
|
||||||
def put_to_queue(self, task: TransferTask):
|
def put_to_queue(self, task: TransferTask) -> bool:
|
||||||
"""
|
"""
|
||||||
添加到待整理队列
|
添加到待整理队列
|
||||||
:param task: 任务信息
|
:param task: 任务信息
|
||||||
|
:return: True表示任务已添加到队列,False表示任务无效或已存在(重复)
|
||||||
"""
|
"""
|
||||||
if not task:
|
if not task:
|
||||||
return
|
return False
|
||||||
# 维护整理任务视图
|
# 维护整理任务视图,如果任务已存在则不添加到队列
|
||||||
self.__put_to_jobview(task)
|
if not self.__put_to_jobview(task):
|
||||||
|
return False
|
||||||
# 添加到队列
|
# 添加到队列
|
||||||
self._queue.put(TransferQueue(
|
self._queue.put(TransferQueue(
|
||||||
task=task,
|
task=task,
|
||||||
callback=self.__default_callback
|
callback=self.__default_callback
|
||||||
))
|
))
|
||||||
|
return True
|
||||||
|
|
||||||
def __put_to_jobview(self, task: TransferTask):
|
def __put_to_jobview(self, task: TransferTask) -> bool:
|
||||||
"""
|
"""
|
||||||
添加到作业视图
|
添加到作业视图
|
||||||
|
:return: True表示任务已添加,False表示任务无效或已存在(重复)
|
||||||
"""
|
"""
|
||||||
self.jobview.add_task(task)
|
return self.jobview.add_task(task)
|
||||||
|
|
||||||
def remove_from_queue(self, fileitem: FileItem):
|
def remove_from_queue(self, fileitem: FileItem):
|
||||||
"""
|
"""
|
||||||
@@ -1357,12 +1364,16 @@ class TransferChain(ChainBase, ConfigReloadMixin, metaclass=Singleton):
|
|||||||
background=background
|
background=background
|
||||||
)
|
)
|
||||||
if background:
|
if background:
|
||||||
self.put_to_queue(task=transfer_task)
|
if self.put_to_queue(task=transfer_task):
|
||||||
logger.info(f"{file_path.name} 已添加到整理队列")
|
logger.info(f"{file_path.name} 已添加到整理队列")
|
||||||
|
else:
|
||||||
|
logger.debug(f"{file_path.name} 已在整理队列中,跳过")
|
||||||
else:
|
else:
|
||||||
# 加入列表
|
# 加入列表
|
||||||
self.__put_to_jobview(transfer_task)
|
if self.__put_to_jobview(transfer_task):
|
||||||
transfer_tasks.append(transfer_task)
|
transfer_tasks.append(transfer_task)
|
||||||
|
else:
|
||||||
|
logger.debug(f"{file_path.name} 已在整理列表中,跳过")
|
||||||
finally:
|
finally:
|
||||||
file_items.clear()
|
file_items.clear()
|
||||||
del file_items
|
del file_items
|
||||||
|
|||||||
Reference in New Issue
Block a user