fix: enable incomplete file suffix for downloaders

This commit is contained in:
jxxghp
2026-05-25 05:58:05 +08:00
parent 4b4b0335e8
commit 4d8c910f0d
4 changed files with 186 additions and 0 deletions

View File

@@ -153,6 +153,20 @@ class Qbittorrent:
logger.error(f"同步下载Cookie出错{str(err)}")
return False
@staticmethod
def __enable_incomplete_file_suffix(qbt: Client) -> None:
"""
开启未完成文件后缀,避免监控流程提前整理仍在下载的媒体文件。
"""
try:
preferences = qbt.app_preferences() or {}
if isinstance(preferences, dict) and preferences.get("incomplete_files_ext") is True:
return
qbt.app_set_preferences({"incomplete_files_ext": True})
logger.info("已开启 qbittorrent 未完成文件追加 .!qB 后缀")
except Exception as err:
logger.warning(f"开启 qbittorrent 未完成文件后缀失败:{str(err)}")
def is_inactive(self) -> bool:
"""
判断是否需要重连
@@ -198,6 +212,7 @@ class Qbittorrent:
stack_trace = "".join(traceback.format_exception(None, e, e.__traceback__))[:2000]
logger.error(f"qbittorrent 登录失败:{str(e)}\n{stack_trace}")
return None
self.__enable_incomplete_file_suffix(qbt)
return qbt
except Exception as err:
logger.error(f"qbittorrent 连接出错:{str(err)}")

View File

@@ -41,6 +41,25 @@ class Transmission:
self._password = password
self.trc = self.__login_transmission()
@staticmethod
def __enable_incomplete_file_suffix(trt: Client) -> None:
"""
开启未完成文件后缀,避免监控流程提前整理仍在下载的媒体文件。
"""
try:
session = trt.get_session()
getter = getattr(session, "get", None)
if callable(getter):
rename_partial_files = getter("rename-partial-files")
else:
rename_partial_files = getattr(session, "rename_partial_files", None)
if rename_partial_files is True:
return
trt.set_session(rename_partial_files=True)
logger.info("已开启 transmission 未完成文件追加 .part 后缀")
except Exception as err:
logger.warning(f"开启 transmission 未完成文件后缀失败:{str(err)}")
def __login_transmission(self) -> Optional[Client]:
"""
连接transmission
@@ -57,6 +76,7 @@ class Transmission:
username=self._username,
password=self._password,
timeout=60)
self.__enable_incomplete_file_suffix(trt)
return trt
except Exception as err:
logger.error(f"transmission 连接出错:{str(err)}")