diff --git a/plugins/autosignin/__init__.py b/plugins/autosignin/__init__.py index 26a172e..80d7c2e 100644 --- a/plugins/autosignin/__init__.py +++ b/plugins/autosignin/__init__.py @@ -222,10 +222,12 @@ class AutoSignIn(_PluginBase): """ return [{ "cmd": "/site_signin", - "event": EventType.SiteSignin, + "event": EventType.PluginAction, "desc": "站点签到", "category": "站点", - "data": {} + "data": { + "action": "site_signin" + } }] def get_api(self) -> List[Dict[str, Any]]: @@ -610,11 +612,15 @@ class AutoSignIn(_PluginBase): } ] - @eventmanager.register(EventType.SiteSignin) + @eventmanager.register(EventType.PluginAction) def sign_in(self, event: Event = None): """ 自动签到|模拟登陆 """ + if event: + event_data = event.event_data + if not event_data or event_data.get("action") != "site_signin": + return # 日期 today = datetime.today() if self._start_time and self._end_time: @@ -738,9 +744,10 @@ class AutoSignIn(_PluginBase): if 'Cookie已失效' in str(s) and site_id: # 触发自动登录插件登录 logger.info(f"触发站点 {site_name} 自动登录更新Cookie和Ua") - self.eventmanager.send_event(EventType.SiteLogin, + self.eventmanager.send_event(EventType.PluginAction, { - "site_id": site_id + "site_id": site_id, + "action": "site_login" }) # 记录本次命中重试关键词的站点 if self._retry_keyword: @@ -779,7 +786,9 @@ class AutoSignIn(_PluginBase): # 自动Cloudflare IP优选 if self._auto_cf and int(self._auto_cf) > 0 and retry_msg and len(retry_msg) >= int(self._auto_cf): - self.eventmanager.send_event(EventType.CloudFlareSpeedTest, {}) + self.eventmanager.send_event(EventType.PluginAction, { + "action": "cloudflare_speedtest" + }) # 发送通知 if self._notify: diff --git a/plugins/clouddiskdel/__init__.py b/plugins/clouddiskdel/__init__.py index d6d1edc..0ba390c 100644 --- a/plugins/clouddiskdel/__init__.py +++ b/plugins/clouddiskdel/__init__.py @@ -62,12 +62,17 @@ class CloudDiskDel(_PluginBase): "del_history": False }) - @eventmanager.register(EventType.NetworkDiskDel) + @eventmanager.register(EventType.PluginAction) def clouddisk_del(self, event: Event): if not self._enabled: return + if not event: + return event_data = event.event_data + if not event_data or event_data.get("action") != "networkdisk_del": + return + logger.info(f"获取到云盘删除请求 {event_data}") media_path = event_data.get("media_path") @@ -188,7 +193,19 @@ class CloudDiskDel(_PluginBase): @staticmethod def get_command() -> List[Dict[str, Any]]: - pass + """ + 定义远程控制命令 + :return: 命令关键字、事件、描述、附带数据 + """ + return [{ + "cmd": "/networkdisk_del", + "event": EventType.PluginAction, + "desc": "云盘文件删除", + "category": "", + "data": { + "action": "networkdisk_del" + } + }] def get_api(self) -> List[Dict[str, Any]]: pass diff --git a/plugins/cloudflarespeedtest/__init__.py b/plugins/cloudflarespeedtest/__init__.py index 1bd6d3b..c505152 100644 --- a/plugins/cloudflarespeedtest/__init__.py +++ b/plugins/cloudflarespeedtest/__init__.py @@ -111,11 +111,16 @@ class CloudflareSpeedTest(_PluginBase): self._scheduler.print_jobs() self._scheduler.start() - @eventmanager.register(EventType.CloudFlareSpeedTest) + @eventmanager.register(EventType.PluginAction) def __cloudflareSpeedTest(self, event: Event = None): """ CloudflareSpeedTest优选 """ + if event: + event_data = event.event_data + if not event_data or event_data.get("action") != "cloudflare_speedtest": + return + self._cf_path = self.get_data_path() self._cf_ipv4 = os.path.join(self._cf_path, "ip.txt") self._cf_ipv6 = os.path.join(self._cf_path, "ipv6.txt") @@ -484,9 +489,11 @@ class CloudflareSpeedTest(_PluginBase): """ return [{ "cmd": "/cloudflare_speedtest", - "event": EventType.CloudFlareSpeedTest, + "event": EventType.PluginAction, "desc": "Cloudflare IP优选", - "data": {} + "data": { + "action": "cloudflare_speedtest" + } }] def get_api(self) -> List[Dict[str, Any]]: diff --git a/plugins/dirmonitor/__init__.py b/plugins/dirmonitor/__init__.py index 18962db..0b588d6 100644 --- a/plugins/dirmonitor/__init__.py +++ b/plugins/dirmonitor/__init__.py @@ -248,12 +248,15 @@ class DirMonitor(_PluginBase): "cron": self._cron }) - @eventmanager.register(EventType.DirectorySync) + @eventmanager.register(EventType.PluginAction) def remote_sync(self, event: Event): """ 远程全量同步 """ if event: + event_data = event.event_data + if not event_data or event_data.get("action") != "directory_sync": + return self.post_message(channel=event.event_data.get("channel"), title="开始同步监控目录 ...", userid=event.event_data.get("user")) @@ -610,10 +613,12 @@ class DirMonitor(_PluginBase): """ return [{ "cmd": "/directory_sync", - "event": EventType.DirectorySync, + "event": EventType.PluginAction, "desc": "目录监控同步", "category": "管理", - "data": {} + "data": { + "action": "directory_sync" + } }] def get_api(self) -> List[Dict[str, Any]]: diff --git a/plugins/doubansync/__init__.py b/plugins/doubansync/__init__.py index d97b6da..cd72f6b 100644 --- a/plugins/doubansync/__init__.py +++ b/plugins/doubansync/__init__.py @@ -130,10 +130,12 @@ class DoubanSync(_PluginBase): """ return [{ "cmd": "/douban_sync", - "event": EventType.DoubanSync, + "event": EventType.PluginAction, "desc": "同步豆瓣想看", "category": "订阅", - "data": {} + "data": { + "action": "douban_sync" + } }] def get_api(self) -> List[Dict[str, Any]]: @@ -540,12 +542,16 @@ class DoubanSync(_PluginBase): # 缓存只清理一次 self._clearflag = False - @eventmanager.register(EventType.DoubanSync) + @eventmanager.register(EventType.PluginAction) def remote_sync(self, event: Event): """ 豆瓣想看同步 """ if event: + event_data = event.event_data + if not event_data or event_data.get("action") != "douban_sync": + return + logger.info("收到命令,开始执行豆瓣想看同步 ...") self.post_message(channel=event.event_data.get("channel"), title="开始同步豆瓣想看 ...", diff --git a/plugins/mediasyncdel/__init__.py b/plugins/mediasyncdel/__init__.py index 8355169..890f92e 100644 --- a/plugins/mediasyncdel/__init__.py +++ b/plugins/mediasyncdel/__init__.py @@ -606,7 +606,7 @@ class MediaSyncDel(_PluginBase): self._exclude_path.split(",")): logger.info(f"媒体路径 {media_path} 已被排除,暂不处理") # 发送消息通知网盘删除插件删除网盘资源 - self.eventmanager.send_event(EventType.NetworkDiskDel, + self.eventmanager.send_event(EventType.Pl, { "media_path": media_path, "media_name": media_name, @@ -685,8 +685,9 @@ class MediaSyncDel(_PluginBase): self._exclude_path.split(",")): logger.info(f"媒体路径 {media_path} 已被排除,暂不处理") # 发送消息通知网盘删除插件删除网盘资源 - self.eventmanager.send_event(EventType.NetworkDiskDel, + self.eventmanager.send_event(EventType.PluginAction, { + "action": "networkdisk_del", "media_path": media_path, "media_name": media_name, "tmdb_id": tmdb_id, diff --git a/plugins/siterefresh/__init__.py b/plugins/siterefresh/__init__.py index b1613b3..d44de8a 100644 --- a/plugins/siterefresh/__init__.py +++ b/plugins/siterefresh/__init__.py @@ -54,16 +54,18 @@ class SiteRefresh(_PluginBase): def get_state(self) -> bool: return self._enabled - @eventmanager.register(EventType.SiteLogin) + @eventmanager.register(EventType.PluginAction) def site_login(self, event): """ 开始站点登录 """ if not self.get_state(): return - + event_data = event.event_data + if not event_data or event_data.get("action") != "site_login": + return # 站点id - site_id = event.event_data.get("site_id") + site_id = event_data.get("site_id") if not site_id: logger.error(f"未获取到site_id") return diff --git a/plugins/sitestatistic/__init__.py b/plugins/sitestatistic/__init__.py index 9ba89c2..b347969 100644 --- a/plugins/sitestatistic/__init__.py +++ b/plugins/sitestatistic/__init__.py @@ -158,10 +158,12 @@ class SiteStatistic(_PluginBase): """ return [{ "cmd": "/site_statistic", - "event": EventType.SiteStatistic, + "event": EventType.PluginAction, "desc": "站点数据统计", "category": "站点", - "data": {} + "data": { + "action": "site_statistic" + } }] def get_api(self) -> List[Dict[str, Any]]: @@ -1031,12 +1033,15 @@ class SiteStatistic(_PluginBase): title=f"站点 {site_user_info.site_name} 收到 " f"{site_user_info.message_unread} 条新消息,请登陆查看") - @eventmanager.register(EventType.SiteStatistic) + @eventmanager.register(EventType.PluginAction) def refresh(self, event: Event): """ 刷新站点数据 """ if event: + event_data = event.event_data + if not event_data or event_data.get("action") != "site_statistic": + return logger.info("收到命令,开始刷新站点数据 ...") self.post_message(channel=event.event_data.get("channel"), title="开始刷新站点数据 ...",