fix cf优选支持交互命令执行

This commit is contained in:
thsrite 2023-10-20 12:37:35 +08:00
parent 6e113cc9c6
commit f0593996a1

View File

@ -14,7 +14,7 @@ from python_hosts import Hosts, HostsEntry
from requests import Response
from app.core.config import settings
from app.core.event import eventmanager
from app.core.event import eventmanager, Event
from app.log import logger
from app.plugins import _PluginBase
from app.schemas.types import EventType, NotificationType
@ -110,7 +110,8 @@ class CloudflareSpeedTest(_PluginBase):
self._scheduler.print_jobs()
self._scheduler.start()
def __cloudflareSpeedTest(self):
@eventmanager.register(EventType.CloudFlareSpeedTest)
def __cloudflareSpeedTest(self, event: Event = None):
"""
CloudflareSpeedTest优选
"""
@ -130,6 +131,12 @@ class CloudflareSpeedTest(_PluginBase):
logger.error("CloudflareSpeedTest加载成功首次运行需要配置优选ip")
return
if event and event.event_data:
logger.info("收到命令开始Cloudflare IP优选 ...")
self.post_message(channel=event.event_data.get("channel"),
title="开始Cloudflare IP优选 ...",
userid=event.event_data.get("user"))
# ipv4和ipv6必须其一
if not self._ipv4 and not self._ipv6:
self._ipv4 = True
@ -470,7 +477,16 @@ class CloudflareSpeedTest(_PluginBase):
@staticmethod
def get_command() -> List[Dict[str, Any]]:
pass
"""
定义远程控制命令
:return: 命令关键字事件描述附带数据
"""
return [{
"cmd": "/cloudflare_speedtest",
"event": EventType.CloudFlareSpeedTest,
"desc": "Cloudflare IP优选",
"data": {}
}]
def get_api(self) -> List[Dict[str, Any]]:
pass
@ -759,10 +775,3 @@ class CloudflareSpeedTest(_PluginBase):
self._scheduler = None
except Exception as e:
logger.error("退出插件失败:%s" % str(e))
@eventmanager.register(EventType.CloudFlareSpeedTest)
def auto_cloudflare_speedtest(self, event):
"""
触发Cloudflare IP优选
"""
self.__cloudflareSpeedTest()