mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-06 16:07:01 +08:00
fix #4581
This commit is contained in:
+45
-35
@@ -312,7 +312,7 @@ class JobManager:
|
|||||||
|
|
||||||
def count(self, media: MediaInfo, season: Optional[int] = None) -> int:
|
def count(self, media: MediaInfo, season: Optional[int] = None) -> int:
|
||||||
"""
|
"""
|
||||||
获取某项任务总数
|
获取某项任务成功总数
|
||||||
"""
|
"""
|
||||||
__mediaid__ = self.__get_media_id(media=media, season=season)
|
__mediaid__ = self.__get_media_id(media=media, season=season)
|
||||||
with job_lock:
|
with job_lock:
|
||||||
@@ -323,7 +323,7 @@ class JobManager:
|
|||||||
|
|
||||||
def size(self, media: MediaInfo, season: Optional[int] = None) -> int:
|
def size(self, media: MediaInfo, season: Optional[int] = None) -> int:
|
||||||
"""
|
"""
|
||||||
获取某项任务总大小
|
获取某项任务成功文件总大小
|
||||||
"""
|
"""
|
||||||
__mediaid__ = self.__get_media_id(media=media, season=season)
|
__mediaid__ = self.__get_media_id(media=media, season=season)
|
||||||
with job_lock:
|
with job_lock:
|
||||||
@@ -390,6 +390,44 @@ class TransferChain(ChainBase, metaclass=Singleton):
|
|||||||
"""
|
"""
|
||||||
整理完成后处理
|
整理完成后处理
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
def __do_finished():
|
||||||
|
"""
|
||||||
|
完成时发送消息、刮削事件、移除任务等
|
||||||
|
"""
|
||||||
|
# 更新文件数量
|
||||||
|
transferinfo.file_count = self.jobview.count(task.mediainfo, task.meta.begin_season) or 1
|
||||||
|
# 更新文件大小
|
||||||
|
transferinfo.total_size = self.jobview.size(task.mediainfo,
|
||||||
|
task.meta.begin_season) or task.fileitem.size
|
||||||
|
# 更新文件清单
|
||||||
|
transferinfo.file_list_new = self._success_target_files.pop(transferinfo.target_diritem.path, [])
|
||||||
|
# 发送通知,实时手动整理时不发
|
||||||
|
if transferinfo.need_notify and (task.background or not task.manual):
|
||||||
|
se_str = None
|
||||||
|
if task.mediainfo.type == MediaType.TV:
|
||||||
|
season_episodes = self.jobview.season_episodes(task.mediainfo, task.meta.begin_season)
|
||||||
|
if season_episodes:
|
||||||
|
se_str = f"{task.meta.season} {StringUtils.format_ep(season_episodes)}"
|
||||||
|
else:
|
||||||
|
se_str = f"{task.meta.season}"
|
||||||
|
self.send_transfer_message(meta=task.meta,
|
||||||
|
mediainfo=task.mediainfo,
|
||||||
|
transferinfo=transferinfo,
|
||||||
|
season_episode=se_str,
|
||||||
|
username=task.username)
|
||||||
|
# 刮削事件
|
||||||
|
if transferinfo.need_scrape:
|
||||||
|
self.eventmanager.send_event(EventType.MetadataScrape, {
|
||||||
|
'meta': task.meta,
|
||||||
|
'mediainfo': task.mediainfo,
|
||||||
|
'fileitem': transferinfo.target_diritem,
|
||||||
|
'file_list': transferinfo.file_list_new,
|
||||||
|
'overwrite': False
|
||||||
|
})
|
||||||
|
# 移除已完成的任务
|
||||||
|
self.jobview.remove_job(task)
|
||||||
|
|
||||||
transferhis = TransferHistoryOper()
|
transferhis = TransferHistoryOper()
|
||||||
if not transferinfo.success:
|
if not transferinfo.success:
|
||||||
# 转移失败
|
# 转移失败
|
||||||
@@ -415,6 +453,10 @@ class TransferChain(ChainBase, metaclass=Singleton):
|
|||||||
))
|
))
|
||||||
# 整理失败
|
# 整理失败
|
||||||
self.jobview.fail_task(task)
|
self.jobview.fail_task(task)
|
||||||
|
with task_lock:
|
||||||
|
# 整理完成且有成功的任务时
|
||||||
|
if self.jobview.is_finished(task):
|
||||||
|
__do_finished()
|
||||||
return False, transferinfo.message
|
return False, transferinfo.message
|
||||||
|
|
||||||
# 转移成功
|
# 转移成功
|
||||||
@@ -470,39 +512,7 @@ class TransferChain(ChainBase, metaclass=Singleton):
|
|||||||
storagechain.delete_media_file(t.fileitem, delete_self=False)
|
storagechain.delete_media_file(t.fileitem, delete_self=False)
|
||||||
# 整理完成且有成功的任务时
|
# 整理完成且有成功的任务时
|
||||||
if self.jobview.is_finished(task):
|
if self.jobview.is_finished(task):
|
||||||
# 更新文件数量
|
__do_finished()
|
||||||
transferinfo.file_count = self.jobview.count(task.mediainfo, task.meta.begin_season) or 1
|
|
||||||
# 更新文件大小
|
|
||||||
transferinfo.total_size = self.jobview.size(task.mediainfo,
|
|
||||||
task.meta.begin_season) or task.fileitem.size
|
|
||||||
# 更新文件清单
|
|
||||||
transferinfo.file_list_new = self._success_target_files.pop(transferinfo.target_diritem.path, [])
|
|
||||||
# 发送通知,实时手动整理时不发
|
|
||||||
if transferinfo.need_notify and (task.background or not task.manual):
|
|
||||||
se_str = None
|
|
||||||
if task.mediainfo.type == MediaType.TV:
|
|
||||||
season_episodes = self.jobview.season_episodes(task.mediainfo, task.meta.begin_season)
|
|
||||||
if season_episodes:
|
|
||||||
se_str = f"{task.meta.season} {StringUtils.format_ep(season_episodes)}"
|
|
||||||
else:
|
|
||||||
se_str = f"{task.meta.season}"
|
|
||||||
self.send_transfer_message(meta=task.meta,
|
|
||||||
mediainfo=task.mediainfo,
|
|
||||||
transferinfo=transferinfo,
|
|
||||||
season_episode=se_str,
|
|
||||||
username=task.username)
|
|
||||||
# 刮削事件
|
|
||||||
if transferinfo.need_scrape:
|
|
||||||
self.eventmanager.send_event(EventType.MetadataScrape, {
|
|
||||||
'meta': task.meta,
|
|
||||||
'mediainfo': task.mediainfo,
|
|
||||||
'fileitem': transferinfo.target_diritem,
|
|
||||||
'file_list': transferinfo.file_list_new,
|
|
||||||
'overwrite': False
|
|
||||||
})
|
|
||||||
|
|
||||||
# 移除已完成的任务
|
|
||||||
self.jobview.remove_job(task)
|
|
||||||
|
|
||||||
return True, ""
|
return True, ""
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user