diff --git a/app/api/endpoints/plugin.py b/app/api/endpoints/plugin.py index 56656f9cd..26cbb34b5 100644 --- a/app/api/endpoints/plugin.py +++ b/app/api/endpoints/plugin.py @@ -525,6 +525,9 @@ def clone_plugin(plugin_id: str, ) if success: + # 注册插件服务 + reload_plugin(message) + # 将分身插件添加到原插件所在的文件夹中 _add_clone_to_plugin_folder(plugin_id, message) return schemas.Response(success=True, message="插件分身创建成功") else: diff --git a/app/modules/filemanager/transhandler.py b/app/modules/filemanager/transhandler.py index b468a5cd3..d30bd77b2 100644 --- a/app/modules/filemanager/transhandler.py +++ b/app/modules/filemanager/transhandler.py @@ -750,6 +750,16 @@ def __transfer_file(self, fileitem: FileItem, mediainfo: MediaInfo, else: logger.info(f"正在删除已存在的文件:{target_file}") target_file.unlink() + else: + exists_item = target_oper.get_item(target_file) + if exists_item: + if not over_flag: + logger.warn(f"文件已存在:【{target_storage}】{target_file}") + return None, f"【{target_storage}】{target_file} 已存在" + else: + logger.info(f"正在删除已存在的文件:【{target_storage}】{target_file}") + target_oper.delete(exists_item) + # 执行文件整理命令 new_item, errmsg = self.__transfer_command(fileitem=fileitem, target_storage=target_storage, source_oper=source_oper, diff --git a/app/scheduler.py b/app/scheduler.py index 878c21df2..9d0f3be5f 100644 --- a/app/scheduler.py +++ b/app/scheduler.py @@ -540,17 +540,18 @@ def update_plugin_job(self, pid: str): self.remove_plugin_job(pid) # 获取插件服务列表 with self._lock: + plugin_manager = PluginManager() try: - plugin_services = PluginManager().get_plugin_services(pid=pid) + plugin_services = plugin_manager.get_plugin_services(pid=pid) except Exception as e: logger.error(f"运行插件 {pid} 服务失败:{str(e)} - {traceback.format_exc()}") return # 获取插件名称 - plugin_name = PluginManager().get_plugin_attr(pid, "plugin_name") + plugin_name = plugin_manager.get_plugin_attr(pid, "plugin_name") # 开始注册插件服务 for service in plugin_services: try: - sid = f"{service['id']}" + sid = f"{pid}_{service['id']}" job_id = sid.split("|")[0] self.remove_plugin_job(pid, job_id) self._jobs[job_id] = { @@ -599,8 +600,8 @@ def list(self) -> List[schemas.ScheduleInfo]: name = service.get("name") provider_name = service.get("provider_name") if service.get("running") and name and provider_name: - if name not in added: - added.append(name) + if job_id not in added: + added.append(job_id) schedulers.append(schemas.ScheduleInfo( id=job_id, name=name, @@ -609,11 +610,11 @@ def list(self) -> List[schemas.ScheduleInfo]: )) # 获取其他待执行任务 for job in jobs: - if job.name not in added: - added.append(job.name) + job_id = job.id.split("|")[0] + if job_id not in added: + added.append(job_id) else: continue - job_id = job.id.split("|")[0] service = self._jobs.get(job_id) if not service: continue diff --git a/version.py b/version.py index 08ecbb0f6..4321a3d87 100644 --- a/version.py +++ b/version.py @@ -1,2 +1,2 @@ -APP_VERSION = 'v2.5.1-1' -FRONTEND_VERSION = 'v2.5.1-1' +APP_VERSION = 'v2.5.2' +FRONTEND_VERSION = 'v2.5.2'