diff --git a/app/chain/transfer.py b/app/chain/transfer.py index 80420eed..b23c5605 100644 --- a/app/chain/transfer.py +++ b/app/chain/transfer.py @@ -205,6 +205,15 @@ class TransferChain(ChainBase): logger.warn(f"{fileitem.path} 没有找到可整理的媒体文件") return False, f"{fileitem.name} 没有找到可整理的媒体文件" + # 检查目录是否发送通知 + transfer_dirinfo = None + for dir_info in self.directoryhelper.get_download_dirs(): + if not dir_info.download_path: + continue + if fileitem.path.is_relative_to(Path(dir_info.download_path)): + transfer_dirinfo = dir_info + break + # 处理所有待整理目录或文件,默认一个整理路径或文件只有一个媒体信息 for trans_item in trans_items: # 汇总季集清单 @@ -240,7 +249,7 @@ class TransferChain(ChainBase): if not file_items: logger.warn(f"{fileitem.path} 没有找到可整理的媒体文件") return False, f"{fileitem.name} 没有找到可整理的媒体文件" - + logger.info(f"正在整理 {len(file_items)} 个文件...") # 整理所有文件 @@ -453,13 +462,14 @@ class TransferChain(ChainBase): transfer_meta = metas[mkey] transfer_info = transfers[mkey] # 发送通知 - se_str = None - if media.type == MediaType.TV: - se_str = f"{transfer_meta.season} {StringUtils.format_ep(season_episodes[mkey])}" - self.send_transfer_message(meta=transfer_meta, - mediainfo=media, - transferinfo=transfer_info, - season_episode=se_str) + if transfer_dirinfo and transfer_dirinfo.notify: + se_str = None + if media.type == MediaType.TV: + se_str = f"{transfer_meta.season} {StringUtils.format_ep(season_episodes[mkey])}" + self.send_transfer_message(meta=transfer_meta, + mediainfo=media, + transferinfo=transfer_info, + season_episode=se_str) # 刮削事件 if scrape or transfer_info.need_scrape: self.eventmanager.send_event(EventType.MetadataScrape, { diff --git a/app/monitor.py b/app/monitor.py index bee6f0c8..9f402f37 100644 --- a/app/monitor.py +++ b/app/monitor.py @@ -447,18 +447,18 @@ class Monitor(metaclass=Singleton): link=settings.MP_DOMAIN('#/history') )) return - else: - # 转移成功 - logger.info(f"{event_path.name} 入库成功:{transferinfo.target_diritem.path}") - # 新增转移成功历史记录 - self.transferhis.add_success( - fileitem=file_item, - mode=dir_info.transfer_type, - download_hash=download_hash, - meta=file_meta, - mediainfo=mediainfo, - transferinfo=transferinfo - ) + + # 转移成功 + logger.info(f"{event_path.name} 入库成功:{transferinfo.target_diritem.path}") + # 新增转移成功历史记录 + self.transferhis.add_success( + fileitem=file_item, + mode=dir_info.transfer_type, + download_hash=download_hash, + meta=file_meta, + mediainfo=mediainfo, + transferinfo=transferinfo + ) # TODO 汇总刮削 if dir_info.scraping: @@ -475,7 +475,8 @@ class Monitor(metaclass=Singleton): }) # 发送消息汇总 - self.__collect_msg_medias(mediainfo=mediainfo, file_meta=file_meta, transferinfo=transferinfo) + if dir_info.notify: + self.__collect_msg_medias(mediainfo=mediainfo, file_meta=file_meta, transferinfo=transferinfo) # 移动模式删除空目录 if dir_info.transfer_type in ["move"]: diff --git a/app/schemas/system.py b/app/schemas/system.py index 894466d7..e6caea34 100644 --- a/app/schemas/system.py +++ b/app/schemas/system.py @@ -131,3 +131,5 @@ class TransferDirectoryConf(BaseModel): library_type_folder: Optional[bool] = False # 媒体库类别子目录 library_category_folder: Optional[bool] = False + # 是否发送通知 + notify: Optional[bool] = True