fix 统一文件识别处理逻辑

This commit is contained in:
jxxghp
2023-08-17 11:56:21 +08:00
parent 8828447367
commit 7b9249894b
5 changed files with 140 additions and 106 deletions

View File

@ -269,15 +269,19 @@ class ChainBase(metaclass=ABCMeta):
"""
return self.run_module("list_torrents", status=status, hashs=hashs)
def transfer(self, path: Path, mediainfo: MediaInfo, transfer_type: str) -> Optional[TransferInfo]:
def transfer(self, path: Path, mediainfo: MediaInfo,
transfer_type: str,
meta: MetaBase = None) -> Optional[TransferInfo]:
"""
文件转移
:param path: 文件路径
:param mediainfo: 识别的媒体信息
:param transfer_type: 转移模式
:param meta: 预识别的元数据,仅单文件转移时传递
:return: {path, target_path, message}
"""
return self.run_module("transfer", path=path, mediainfo=mediainfo, transfer_type=transfer_type)
return self.run_module("transfer", path=path, mediainfo=mediainfo,
transfer_type=transfer_type, meta=meta)
def transfer_completed(self, hashs: Union[str, list], transinfo: TransferInfo) -> None:
"""

View File

@ -36,7 +36,8 @@ class TransferChain(ChainBase):
self.transferhis = TransferHistoryOper(self._db)
self.progress = ProgressHelper()
def process(self, arg_str: str = None, channel: MessageChannel = None, userid: Union[str, int] = None) -> bool:
def process(self, arg_str: str = None,
channel: MessageChannel = None, userid: Union[str, int] = None) -> bool:
"""
获取下载器中的种子列表,并执行转移
:param arg_str: 传入的参数 (种子hash和TMDBID|类型)
@ -154,13 +155,16 @@ class TransferChain(ChainBase):
transferinfo: TransferInfo = self.transfer(mediainfo=mediainfo,
path=torrent.path,
transfer_type=settings.TRANSFER_TYPE)
if not transferinfo or not transferinfo.target_path:
if not transferinfo:
logger.error("文件转移模块运行失败")
continue
if not transferinfo.target_path:
# 转移失败
logger.warn(f"{torrent.title} 入库失败")
logger.warn(f"{torrent.title} 入库失败{transferinfo.message}")
self.post_message(Notification(
channel=channel,
title=f"{mediainfo.title_year}{meta.season_episode} 入库失败!",
text=f"原因:{transferinfo.message if transferinfo else '未知'}",
text=f"原因:{transferinfo.message or '未知'}",
image=mediainfo.get_message_image(),
userid=userid
))
@ -189,7 +193,7 @@ class TransferChain(ChainBase):
# 新增转移成功历史记录
self.transferhis.add(
src=str(torrent.path),
dest=str(transferinfo.target_path) if transferinfo else None,
dest=str(transferinfo.target_path),
mode=settings.TRANSFER_TYPE,
type=mediainfo.type.value,
category=mediainfo.category,