From 41a9797d870cb2d8b7b7727ef2466f7060e23986 Mon Sep 17 00:00:00 2001 From: so1ve Date: Tue, 4 Feb 2025 13:36:45 +0800 Subject: [PATCH] =?UTF-8?q?feat(torrenttransfer.v2):=20=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E8=B7=B3=E8=BF=87=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.v2.json | 3 ++- plugins.v2/torrenttransfer/__init__.py | 37 +++++++++++++++++++++----- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/package.v2.json b/package.v2.json index db3d87b..2c3159f 100644 --- a/package.v2.json +++ b/package.v2.json @@ -104,11 +104,12 @@ "name": "自动转移做种", "description": "定期转移下载器中的做种任务到另一个下载器。", "labels": "做种", - "version": "1.9", + "version": "1.10", "icon": "seed.png", "author": "jxxghp", "level": 2, "history": { + "v1.10": "支持跳过校验(仅支持 qBittorrent),开启跳过校验后需手动开启自动开始", "v1.9": "优化执行周期输入,需要MoviePilot v2.2.1+", "v1.8": "支持qbittorrent 5", "v1.7": "MoviePilot V2 版本自动转移做种插件", diff --git a/plugins.v2/torrenttransfer/__init__.py b/plugins.v2/torrenttransfer/__init__.py index 9beb8f4..ab1e311 100644 --- a/plugins.v2/torrenttransfer/__init__.py +++ b/plugins.v2/torrenttransfer/__init__.py @@ -61,6 +61,7 @@ class TorrentTransfer(_PluginBase): _deleteduplicate = False _fromtorrentpath = None _autostart = False + _skipverify = False _transferemptylabel = False _add_torrent_tags = None # 退出事件 @@ -92,6 +93,7 @@ class TorrentTransfer(_PluginBase): self._fromtorrentpath = config.get("fromtorrentpath") self._nopaths = config.get("nopaths") self._autostart = config.get("autostart") + self._skipverify = config.get("skipverify") self._transferemptylabel = config.get("transferemptylabel") self._add_torrent_tags = config.get("add_torrent_tags") or "" self._torrent_tags = self._add_torrent_tags.strip().split(",") if self._add_torrent_tags else [] @@ -467,6 +469,19 @@ class TorrentTransfer(_PluginBase): } ] }, + { + "component": "VCol", + "props": {"cols": 12, "md": 3}, + "content": [ + { + "component": "VSwitch", + "props": { + "model": "skipverify", + "label": "跳过校验(仅QB有效)", + }, + } + ], + }, { 'component': 'VCol', 'props': { @@ -536,6 +551,7 @@ class TorrentTransfer(_PluginBase): "fromtorrentpath": "", "nopaths": "", "autostart": True, + "skipverify": False, "transferemptylabel": False, "add_torrent_tags": "已整理,转移做种" } @@ -572,7 +588,8 @@ class TorrentTransfer(_PluginBase): state = downloader.add_torrent(content=content, download_dir=save_path, is_paused=True, - tag=self._torrent_tags + [tag]) + tag=self._torrent_tags + [tag], + is_skip_checking=self._skipverify) if not state: return None else: @@ -806,11 +823,19 @@ class TorrentTransfer(_PluginBase): logger.info(f"qbittorrent 开始校验 {download_id} ...") to_downloader.recheck_torrents(ids=[download_id]) - # 追加校验任务 - logger.info(f"添加校验检查任务:{download_id} ...") - if not self._recheck_torrents.get(to_service.name): - self._recheck_torrents[to_service.name] = [] - self._recheck_torrents[to_service.name].append(download_id) + if self._skipverify: + # 跳过校验 + logger.info(f"{download_id} 跳过校验,请自行检查...") + # 请注意这里是故意不自动开始的 + # 跳过校验存在直接失败、种子目录相同文件不同等异常情况 + # 必须要用户自行二次确认之后才能开始做种 + # 否则会出现反复下载刷掉分享率、做假种的情况 + else: + # 追加校验任务 + logger.info(f"添加校验检查任务:{download_id} ...") + if not self._recheck_torrents.get(to_service.name): + self._recheck_torrents[to_service.name] = [] + self._recheck_torrents[to_service.name].append(download_id) # 删除源种子,不能删除文件! if self._deletesource: