diff --git a/app/chain/media.py b/app/chain/media.py index e30a3c8e..d5ccc24c 100644 --- a/app/chain/media.py +++ b/app/chain/media.py @@ -486,9 +486,6 @@ class MediaChain(ChainBase, metaclass=Singleton): content = __download_image(image_url) # 保存图片文件到当前目录 __save_file(_fileitem=fileitem, _path=image_path, _content=content) - # 季文件夹刮完,判断你上级是不是剧集根目录 - season_meta = MetaInfo(filepath.parent.name) - filepath = filepath.parent # 判断当前目录是不是剧集根目录 if season_meta.name: # 当前目录有名称,生成tvshow nfo 和 tv图片 diff --git a/app/modules/filemanager/__init__.py b/app/modules/filemanager/__init__.py index a32735a6..f7cb0351 100644 --- a/app/modules/filemanager/__init__.py +++ b/app/modules/filemanager/__init__.py @@ -901,7 +901,9 @@ class FileManagerModule(_ModuleBase): # 目的操作对象 target_oper: StorageBase = self.__get_storage_oper(target_storage) # 目标目录 - target_diritem = target_oper.get_folder(new_file.parent) + target_diritem = target_oper.get_folder( + new_file.parent) if mediainfo.type == MediaType.MOVIE else target_oper.get_folder( + new_file.parent.parent) # 目标文件 target_item = target_oper.get_item(new_file) if target_item: diff --git a/app/monitor.py b/app/monitor.py index 9b1eb418..c15dfee6 100644 --- a/app/monitor.py +++ b/app/monitor.py @@ -128,6 +128,10 @@ class Monitor(metaclass=Singleton): monitor_dirs = self.directoryhelper.get_download_dirs() if not monitor_dirs: return + + # 启动定时服务进程 + self._scheduler = BackgroundScheduler(timezone=settings.TZ) + for mon_dir in monitor_dirs: if not mon_dir.library_path: continue @@ -141,9 +145,6 @@ class Monitor(metaclass=Singleton): self.systemmessage.put(f"{target_path} 是监控目录 {mon_path} 的子目录,无法监控", title="目录监控") continue - # 启动定时服务进程 - self._scheduler = BackgroundScheduler(timezone=settings.TZ) - # 启动监控 if mon_dir.storage == "local": # 本地目录监控 @@ -177,8 +178,12 @@ class Monitor(metaclass=Singleton): 'mon_path': mon_path }) - # 追加入库消息统一发送服务 - self._scheduler.add_job(self.__send_msg, trigger='interval', seconds=15) + # 追加入库消息统一发送服务 + self._scheduler.add_job(self.__send_msg, trigger='interval', seconds=15) + # 启动定时服务 + if self._scheduler.get_jobs(): + self._scheduler.print_jobs() + self._scheduler.start() @staticmethod def __choose_observer() -> Any: @@ -439,6 +444,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 + ) # TODO 汇总刮削 if dir_info.scraping: @@ -475,12 +492,12 @@ class Monitor(metaclass=Singleton): if media_files: file_exists = False for file in media_files: - if str(file_meta.path) == file.get("path"): + if str(transferinfo.fileitem.path) == file.get("path"): file_exists = True break if not file_exists: media_files.append({ - "path": str(file_meta.path), + "path": str(transferinfo.fileitem.path), "mediainfo": mediainfo, "file_meta": file_meta, "transferinfo": transferinfo @@ -488,7 +505,7 @@ class Monitor(metaclass=Singleton): else: media_files = [ { - "path": str(file_meta.path), + "path": str(transferinfo.fileitem.path), "mediainfo": mediainfo, "file_meta": file_meta, "transferinfo": transferinfo @@ -502,7 +519,7 @@ class Monitor(metaclass=Singleton): media_list = { "files": [ { - "path": str(file_meta.path), + "path": str(transferinfo.fileitem.path), "mediainfo": mediainfo, "file_meta": file_meta, "transferinfo": transferinfo