From a2f20de3f751fef80af4b0f344016386bb7e4828 Mon Sep 17 00:00:00 2001 From: thsrite Date: Sat, 13 Jul 2024 18:53:39 +0800 Subject: [PATCH] =?UTF-8?q?fix=20loudDrive2=E5=8A=A9=E6=89=8B=20v1.6=20?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E4=BA=A4=E4=BA=92=E5=91=BD=E4=BB=A4=E4=BA=91?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- package.json | 3 +- plugins/cd2assistant/__init__.py | 76 +++++++++++++++++++++++++++++++- 3 files changed, 77 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 4ee5a35..972ae90 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ MoviePilot三方插件市场:https://github.com/thsrite/MoviePilot-Plugins/ - 目录监控(统一入库消息增强版) v1.0 - Sql执行器 v1.2 - 命令执行器 v1.2 -- CloudDrive2助手 v1.5 +- CloudDrive2助手 v1.6 - 软连接重定向 v1.1 - 云盘同步删除 v1.4 - 媒体库重复媒体检测 v1.9 \ No newline at end of file diff --git a/package.json b/package.json index 6bc7042..9966129 100644 --- a/package.json +++ b/package.json @@ -573,11 +573,12 @@ "name": "CloudDrive2助手", "description": "监控上传任务,检测是否有异常,发送通知。", "labels": "云盘", - "version": "1.5", + "version": "1.6", "icon": "https://raw.githubusercontent.com/thsrite/MoviePilot-Plugins/main/icons/clouddrive.png", "author": "thsrite", "level": 2, "history": { + "v1.6": "支持交互命令云下载", "v1.5": "增加云盘同步黑名单(排序挂载本地目录)", "v1.4": "增加云盘存储空间展示", "v1.3": "增加云盘Cookie失效检测", diff --git a/plugins/cd2assistant/__init__.py b/plugins/cd2assistant/__init__.py index e42fc67..9a76413 100644 --- a/plugins/cd2assistant/__init__.py +++ b/plugins/cd2assistant/__init__.py @@ -25,7 +25,7 @@ class Cd2Assistant(_PluginBase): # 插件图标 plugin_icon = "https://raw.githubusercontent.com/thsrite/MoviePilot-Plugins/main/icons/clouddrive.png" # 插件版本 - plugin_version = "1.5" + plugin_version = "1.6" # 插件作者 plugin_author = "thsrite" # 作者主页 @@ -46,6 +46,7 @@ class Cd2Assistant(_PluginBase): _msgtype = None _keyword = None _black_dir = None + _cloud_path = None _cd2_url = None _cd2_username = None _cd2_password = None @@ -67,6 +68,7 @@ class Cd2Assistant(_PluginBase): self._cd2_username = config.get("cd2_username") self._cd2_password = config.get("cd2_password") self._black_dir = config.get("black_dir") or "" + self._cloud_path = config.get("cloud_path") or "" # 停止现有任务 self.stop_service() @@ -143,6 +145,7 @@ class Cd2Assistant(_PluginBase): "cd2_username": self._cd2_username, "cd2_password": self._cd2_password, "black_dir": self._black_dir, + "cloud_path": self._cloud_path, }) def check(self): @@ -236,6 +239,49 @@ class Cd2Assistant(_PluginBase): return _space_info + @eventmanager.register(EventType.PluginAction) + def add_offline_files(self, event: Event = None): + """ + 离线下载 + """ + if event: + event_data = event.event_data + if not event_data or event_data.get("action") != "cloud_download": + return + args = event_data.get("args") + if not args: + logger.error(f"缺少参数:{event_data}") + return + args = args.replace(" ", "\n") + + if not self._cloud_path: + logger.error("请先设置云盘路径") + if event.event_data.get("user"): + self.post_message(channel=event.event_data.get("channel"), + title=f"请先设置云盘路径!", + userid=event.event_data.get("user")) + return + + logger.info(f"开始离线下载:{args}") + result = self._client.AddOfflineFiles( + CloudDrive_pb2.AddOfflineFileRequest(urls=args, toFolder=self._cloud_path)) + if result and result.success: + logger.info(f"离线下载成功") + if event.event_data.get("user"): + self.post_message(channel=event.event_data.get("channel"), + title=f"离线下载成功!", + userid=event.event_data.get("user")) + else: + errorMessage = None + if result and result.errorMessage: + errorMessage = result.errorMessage + logger.error(f"离线下载失败:{errorMessage}") + if event.event_data.get("user"): + self.post_message(channel=event.event_data.get("channel"), + title=f"离线下载失败!", + userid=event.event_data.get("user"), + text=f"错误信息:{errorMessage}") + @eventmanager.register(EventType.PluginAction) def cd2_info(self, event: Event = None): """ @@ -378,6 +424,15 @@ class Cd2Assistant(_PluginBase): "data": { "action": "cd2_info" } + }, + { + "cmd": "/cd", + "event": EventType.PluginAction, + "desc": "云下载", + "category": "", + "data": { + "action": "cloud_download" + } } ] @@ -598,6 +653,22 @@ class Cd2Assistant(_PluginBase): } ] }, + { + 'component': 'VCol', + 'props': { + 'cols': 12, + 'md': 4 + }, + 'content': [ + { + 'component': 'VTextField', + 'props': { + 'model': 'cloud_path', + 'label': '云下载路径' + } + } + ] + }, ] }, { @@ -655,7 +726,8 @@ class Cd2Assistant(_PluginBase): "cd2_username": "", "cd2_password": "", "msgtype": "Manual", - "black_dir": "" + "black_dir": "", + "cloud_path": "", } def get_page(self) -> List[dict]: