From 3140ff293bd54ea97ebf45b2dd687113e287f6ff Mon Sep 17 00:00:00 2001 From: thsrite Date: Fri, 15 Nov 2024 13:19:40 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=BA=90=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.v2.json | 4 ++-- plugins.v2/mediasyncdel/__init__.py | 14 +++++++++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/package.v2.json b/package.v2.json index bb9448a..c8c418a 100644 --- a/package.v2.json +++ b/package.v2.json @@ -176,12 +176,12 @@ "name": "媒体文件同步删除", "description": "同步删除历史记录、源文件和下载任务。", "labels": "媒体库,文件整理", - "version": "1.8.5", + "version": "1.8.6", "icon": "mediasyncdel.png", "author": "thsrite", "level": 1, "history": { - "v1.8.5": "修复删除源文件", + "v1.8.6": "修复删除源文件", "v1.8.4": "修复暂停种子失败", "v1.8.3": "修复源文件删除", "v1.8.1": "适配v2多媒体服务器,移除日志方式", diff --git a/plugins.v2/mediasyncdel/__init__.py b/plugins.v2/mediasyncdel/__init__.py index d95823b..e679484 100644 --- a/plugins.v2/mediasyncdel/__init__.py +++ b/plugins.v2/mediasyncdel/__init__.py @@ -25,7 +25,7 @@ class MediaSyncDel(_PluginBase): # 插件图标 plugin_icon = "mediasyncdel.png" # 插件版本 - plugin_version = "1.8.5" + plugin_version = "1.8.6" # 插件作者 plugin_author = "thsrite" # 作者主页 @@ -50,12 +50,14 @@ class MediaSyncDel(_PluginBase): _transferhis = None _downloadhis = None _default_downloader = None + _storagechain = None def init_plugin(self, config: dict = None): self._transferchain = TransferChain() self._downloader_helper = DownloaderHelper() self._transferhis = self._transferchain.transferhis self._downloadhis = self._transferchain.downloadhis + self._storagechain = StorageChain() # 读取配置 if config: @@ -765,11 +767,17 @@ class MediaSyncDel(_PluginBase): if self._del_source: # 1、直接删除源文件 if transferhis.src and Path(transferhis.src).suffix in settings.RMT_MEDIAEXT: - StorageChain().delete_file(schemas.FileItem(**transferhis.dest_fileitem)) + self._storagechain.delete_file(schemas.FileItem(**transferhis.dest_fileitem)) src_fileitem = schemas.FileItem(**transferhis.src_fileitem) logger.info(f"开始删除源文件 {src_fileitem.path}") - state = StorageChain().delete_file(src_fileitem) + state = self._storagechain.delete_file(src_fileitem) if state and transferhis.download_hash: + folder_item = self._storagechain.get_parent_item(src_fileitem) + if folder_item and not self._storagechain.any_files(folder_item, + extensions=settings.RMT_MEDIAEXT): + logger.warn(f"删除残留空文件夹:【{folder_item.storage}】{folder_item.path}") + self._storagechain.delete_file(folder_item) + try: # 2、判断种子是否被删除完 delete_flag, success_flag, handle_torrent_hashs = self.handle_torrent(