diff --git a/package.v2.json b/package.v2.json index ad1d073..cd5a141 100644 --- a/package.v2.json +++ b/package.v2.json @@ -217,11 +217,12 @@ "name": "IYUU自动辅种", "description": "基于IYUU官方Api实现自动辅种。", "labels": "做种,IYUU", - "version": "2.12", + "version": "2.13", "icon": "IYUU.png", - "author": "jxxghp,ckun", + "author": "jxxghp,CKun", "level": 2, "history": { + "v2.13": "开启跳过校验后需手动开启自动开始", "v2.12": "增加qb下载器分类复用配置", "v2.11": "修复qb跳过校验不自动开始的问题", "v2.10": "Revert 辅种结束后,一起开始所有辅种后暂停的种子(排除了出错的种子)", diff --git a/plugins.v2/iyuuautoseed/README.md b/plugins.v2/iyuuautoseed/README.md index 33dd3a2..81d1c33 100644 --- a/plugins.v2/iyuuautoseed/README.md +++ b/plugins.v2/iyuuautoseed/README.md @@ -1,5 +1,9 @@ # IYUU自动辅种 +## 清除缓存后运行 + +将清理辅种成功或失败的种子缓存,完整跑完每个种子每个站点的辅种操作。 + ## 下载器说明 下载器为多选,选择多个下载器时,各个下载器的种子辅种互不影响 @@ -43,10 +47,12 @@ - 仅QB下载器有效,跳过后可能会导致反复下载刷掉分享率、做假种的情况。本人仅仅测试了 QB `v4.6.6` 跳过无文件时不会自动开始,若有问题及时反馈将增加按钮选择是否需要跳过 - Tr下载器在4.0.x中属于默认行为 +## 自动开始 + +跳过校验时有效 + +>QB开启跳过校验后需要手动开启自动开始后,种子才会自动开始,QB跳过可能会出现种子完整性误判,出现反复下载刷掉分享率和做假种的情况,请自行甄别。 + ## 分类复用 -将复用原种子的分离,当原种子无分类时使用[辅种后增加分类](#辅种后增加分类)配置中的分类 - -## 清除缓存后运行 - -将清理辅种成功或失败的种子缓存,完整跑完每个种子每个站点的辅种操作。 \ No newline at end of file +将复用原种子的分类,当原种子无分类时使用[辅种后增加分类](#辅种后增加分类)配置中的分类 diff --git a/plugins.v2/iyuuautoseed/__init__.py b/plugins.v2/iyuuautoseed/__init__.py index 9cf0bdc..32340ae 100644 --- a/plugins.v2/iyuuautoseed/__init__.py +++ b/plugins.v2/iyuuautoseed/__init__.py @@ -33,9 +33,9 @@ class IYUUAutoSeed(_PluginBase): # 插件图标 plugin_icon = "IYUU.png" # 插件版本 - plugin_version = "2.12" + plugin_version = "2.13" # 插件作者 - plugin_author = "jxxghp,ckun" + plugin_author = "jxxghp,CKun" # 作者主页 author_url = "https://github.com/jxxghp" # 插件配置项ID前缀 @@ -119,6 +119,7 @@ class IYUUAutoSeed(_PluginBase): self._labelsafterseed = config.get("labelsafterseed") if config.get("labelsafterseed") else "已整理,辅种" self._categoryafterseed = config.get("categoryafterseed") self._auto_category = config.get("auto_category") + self._auto_start = config.get("auto_start") self._addhosttotag = config.get("addhosttotag") self._size = float(config.get("size")) if config.get("size") else 0 self._clearcache = config.get("clearcache") @@ -261,7 +262,7 @@ class IYUUAutoSeed(_PluginBase): 'component': 'VCol', 'props': { 'cols': 12, - 'md': 4 + 'md': 3 }, 'content': [ { @@ -277,7 +278,7 @@ class IYUUAutoSeed(_PluginBase): 'component': 'VCol', 'props': { 'cols': 12, - 'md': 4 + 'md': 3 }, 'content': [ { @@ -293,7 +294,23 @@ class IYUUAutoSeed(_PluginBase): 'component': 'VCol', 'props': { 'cols': 12, - 'md': 4 + 'md': 3 + }, + 'content': [ + { + 'component': 'VSwitch', + 'props': { + 'model': 'clearcache', + 'label': '清除缓存后运行', + } + } + ] + }, + { + 'component': 'VCol', + 'props': { + 'cols': 12, + 'md': 3 }, 'content': [ { @@ -549,8 +566,8 @@ class IYUUAutoSeed(_PluginBase): { 'component': 'VSwitch', 'props': { - 'model': 'auto_category', - 'label': '分类复用(仅QB有效)', + 'model': 'auto_start', + 'label': '自动开始(跳过校验有效)', } } ] @@ -565,8 +582,8 @@ class IYUUAutoSeed(_PluginBase): { 'component': 'VSwitch', 'props': { - 'model': 'clearcache', - 'label': '清除缓存后运行', + 'model': 'auto_category', + 'label': '分类复用(仅QB有效)', } } ] @@ -627,6 +644,7 @@ class IYUUAutoSeed(_PluginBase): "clearcache": False, "addhosttotag": False, "auto_category": False, + "auto_start": False, "cron": "", "token": "", "downloaders": [], @@ -660,6 +678,7 @@ class IYUUAutoSeed(_PluginBase): "categoryafterseed": self._categoryafterseed, "addhosttotag": self._addhosttotag, "auto_category": self._auto_category, + "auto_start": self._auto_start, "size": self._size, "success_caches": self._success_caches, "error_caches": self._error_caches, @@ -1100,22 +1119,31 @@ class IYUUAutoSeed(_PluginBase): self.success += 1 if service.type == "qbittorrent": if self._skipverify: - # 跳过校验 - logger.info(f"{download_id} 跳过校验,请自行检查...") + if self._auto_start: + logger.info(f"{download_id} 跳过校验,开启自动开始,注意观察种子的完整性") + self.__add_recheck_torrents(service, download_id) + else: + # 跳过校验 + logger.info(f"{download_id} 跳过校验,请自行检查手动开始任务...") else: # 开始校验种子 downloader_obj.recheck_torrents(ids=[download_id]) - # 追加校验任务 - logger.info(f"添加校验检查任务:{download_id} ...") - if not self._recheck_torrents.get(service.name): - self._recheck_torrents[service.name] = [] - self._recheck_torrents[service.name].append(download_id) + self.add_torrent(service, download_id) + else: + self.add_torrent(service, download_id) # 下载成功 logger.info(f"成功添加辅种下载,站点:{site_info.get('name')},种子链接:{torrent_url}") # 成功也加入缓存,有一些改了路径校验不通过的,手动删除后,下一次又会辅上 self._success_caches.append(seed.get("info_hash")) return True + def __add_recheck_torrents(self, service: ServiceInfo, download_id: str): + # 追加校验任务 + logger.info(f"添加校验检查任务:{download_id} ...") + if not self._recheck_torrents.get(service.name): + self._recheck_torrents[service.name] = [] + self._recheck_torrents[service.name].append(download_id) + @staticmethod def __get_hash(torrent: Any, dl_type: str): """