diff --git a/app/chain/transfer.py b/app/chain/transfer.py index 38f6d359..282b8e48 100644 --- a/app/chain/transfer.py +++ b/app/chain/transfer.py @@ -18,7 +18,6 @@ from app.db.systemconfig_oper import SystemConfigOper from app.db.transferhistory_oper import TransferHistoryOper from app.helper.directory import DirectoryHelper from app.helper.format import FormatParser -from app.helper.message import MessageHelper from app.helper.progress import ProgressHelper from app.log import logger from app.schemas import TransferInfo, TransferTorrent, Notification, EpisodeFormat @@ -44,7 +43,6 @@ class TransferChain(ChainBase): self.tmdbchain = TmdbChain() self.systemconfig = SystemConfigOper() self.directoryhelper = DirectoryHelper() - self.messagehelper = MessageHelper() def process(self) -> bool: """ @@ -359,22 +357,10 @@ class TransferChain(ChainBase): transfers[mkey].file_list_new.extend(transferinfo.file_list_new) transfers[mkey].fail_list.extend(transferinfo.fail_list) - # 硬链接检查 - temp_transfer_type = transfer_type - if transfer_type == "link": - if not SystemUtils.is_hardlink(file_path, transferinfo.target_path): - logger.warn( - f"{file_path} 与 {transferinfo.target_path} 不是同一硬链接文件路径,请检查存储空间占用和整理耗时,确认是否为复制") - self.messagehelper.put( - f"{file_path} 与 {transferinfo.target_path} 不是同一硬链接文件路径,疑似硬链接失败,请检查是否为复制", - title="硬链接失败", - role="system") - temp_transfer_type = "copy" - # 新增转移成功历史记录 self.transferhis.add_success( src_path=file_path, - mode=temp_transfer_type, + mode=transfer_type, download_hash=download_hash, meta=file_meta, mediainfo=file_mediainfo, @@ -384,7 +370,7 @@ class TransferChain(ChainBase): if transferinfo.need_scrape: self.scrape_metadata(path=transferinfo.target_path, mediainfo=file_mediainfo, - transfer_type=temp_transfer_type, + transfer_type=transfer_type, metainfo=file_meta) # 更新进度 processed_num += 1 diff --git a/app/utils/system.py b/app/utils/system.py index 65d941a6..c1ab0412 100644 --- a/app/utils/system.py +++ b/app/utils/system.py @@ -10,6 +10,7 @@ from typing import List, Union, Tuple import docker import psutil + from app import schemas @@ -469,7 +470,9 @@ class SystemUtils: @staticmethod def is_hardlink(src: Path, dest: Path) -> bool: - """判断是否为硬链接""" + """ + 判断是否为硬链接(可能无法支持宿主机挂载smb盘符映射docker的场景) + """ try: if not src.exists() or not dest.exists(): return False @@ -487,7 +490,7 @@ class SystemUtils: if not target_file.exists() or not src_file.samefile(target_file): return False return True - except (PermissionError, FileNotFoundError, ValueError, OSError) as e: + except Exception as e: print(f"Error occurred: {e}") return False