fix(transfer): handle task removal on media info failure

This commit is contained in:
InfinityPacer
2024-12-29 02:26:30 +08:00
parent 49d5e5b953
commit b768929cd8
+8 -3
View File
@@ -1,6 +1,7 @@
import queue import queue
import re import re
import threading import threading
import traceback
from copy import deepcopy from copy import deepcopy
from pathlib import Path from pathlib import Path
from queue import Queue from queue import Queue
@@ -62,6 +63,8 @@ class JobManager:
""" """
获取媒体ID 获取媒体ID
""" """
if not media:
return None, season
return media.tmdb_id or media.douban_id, season return media.tmdb_id or media.douban_id, season
def __get_id(self, task: TransferTask = None) -> Tuple: def __get_id(self, task: TransferTask = None) -> Tuple:
@@ -467,7 +470,8 @@ class TransferChain(ChainBase, metaclass=Singleton):
# 更新文件数量 # 更新文件数量
transferinfo.file_count = self.jobview.count(task.mediainfo, task.meta.begin_season) or 1 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.total_size = self.jobview.size(task.mediainfo,
task.meta.begin_season) or task.fileitem.size
self.send_transfer_message(meta=task.meta, self.send_transfer_message(meta=task.meta,
mediainfo=task.mediainfo, mediainfo=task.mediainfo,
transferinfo=transferinfo, transferinfo=transferinfo,
@@ -583,7 +587,7 @@ class TransferChain(ChainBase, metaclass=Singleton):
__queue_start = True __queue_start = True
continue continue
except Exception as e: except Exception as e:
logger.error(f"整理队列处理出现错误:{e}") logger.error(f"整理队列处理出现错误:{e} - {traceback.format_exc()}")
def __handle_transfer(self, task: TransferTask, def __handle_transfer(self, task: TransferTask,
callback: Optional[Callable] = None) -> Tuple[bool, str]: callback: Optional[Callable] = None) -> Tuple[bool, str]:
@@ -624,7 +628,8 @@ class TransferChain(ChainBase, metaclass=Singleton):
text=f"回复:```\n/redo {his.id} [tmdbid]|[类型]\n``` 手动识别整理。", text=f"回复:```\n/redo {his.id} [tmdbid]|[类型]\n``` 手动识别整理。",
link=settings.MP_DOMAIN('#/history') link=settings.MP_DOMAIN('#/history')
)) ))
# 任务失败 # 任务失败,直接移除task
self.jobview.remove_task(task.fileitem)
return False, "未识别到媒体信息" return False, "未识别到媒体信息"
# 如果未开启新增已入库媒体是否跟随TMDB信息变化则根据tmdbid查询之前的title # 如果未开启新增已入库媒体是否跟随TMDB信息变化则根据tmdbid查询之前的title