fix 签到失败过多自动触发cf优选

This commit is contained in:
thsrite
2023-10-20 12:08:07 +08:00
parent 7ffc5e6624
commit 6e113cc9c6
3 changed files with 60 additions and 5 deletions

View File

@ -72,6 +72,7 @@ class AutoSignIn(_PluginBase):
_clean: bool = False
_start_time: int = None
_end_time: int = None
_auto_cf: int = 0
def init_plugin(self, config: dict = None):
self.sites = SitesHelper()
@ -91,6 +92,7 @@ class AutoSignIn(_PluginBase):
self._sign_sites = config.get("sign_sites") or []
self._login_sites = config.get("login_sites") or []
self._retry_keyword = config.get("retry_keyword")
self._auto_cf = config.get("auto_cf")
self._clean = config.get("clean")
# 过滤掉已删除的站点
@ -206,6 +208,7 @@ class AutoSignIn(_PluginBase):
"sign_sites": self._sign_sites,
"login_sites": self._login_sites,
"retry_keyword": self._retry_keyword,
"auto_cf": self._auto_cf,
"clean": self._clean,
}
)
@ -333,7 +336,7 @@ class AutoSignIn(_PluginBase):
'component': 'VCol',
'props': {
'cols': 12,
'md': 4
'md': 3
},
'content': [
{
@ -350,7 +353,7 @@ class AutoSignIn(_PluginBase):
'component': 'VCol',
'props': {
'cols': 12,
'md': 4
'md': 3
},
'content': [
{
@ -366,7 +369,7 @@ class AutoSignIn(_PluginBase):
'component': 'VCol',
'props': {
'cols': 12,
'md': 4
'md': 3
},
'content': [
{
@ -378,6 +381,23 @@ class AutoSignIn(_PluginBase):
}
}
]
},
{
'component': 'VCol',
'props': {
'cols': 12,
'md': 3
},
'content': [
{
'component': 'VTextField',
'props': {
'model': 'auto_cf',
'label': '自动优选',
'placeholder': '0为不开启命中重试关键词达到数量自动进行Cloudflare IP优选'
}
}
]
}
]
},
@ -443,6 +463,25 @@ class AutoSignIn(_PluginBase):
]
}
]
},
{
'component': 'VRow',
'content': [
{
'component': 'VCol',
'props': {
'cols': 12,
},
'content': [
{
'component': 'VAlert',
'props': {
'text': '自动Cloudflare IP优选0=不开启命中重试关键词数量大于该数量时自动执行Cloudflare IP优选。需要开启且则正确配置Cloudflare IP优选插件和自定义Hosts插件'
}
}
]
}
]
}
]
}
@ -450,6 +489,7 @@ class AutoSignIn(_PluginBase):
"enabled": False,
"notify": True,
"cron": "",
"auto_cf": 0,
"onlyonce": False,
"clean": False,
"queue_cnt": 5,
@ -724,6 +764,10 @@ class AutoSignIn(_PluginBase):
"retry": retry_sites
})
# 自动Cloudflare IP优选
if self._auto_cf and self._auto_cf > 0 and retry_msg and len(retry_msg) > self._auto_cf:
EventManager().send_event(EventType.CloudFlareSpeedTest, {})
# 发送通知
if self._notify:
# 签到详细信息 登录成功、签到成功、已签到、仿真签到成功、失败--命中重试

View File

@ -14,6 +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.log import logger
from app.plugins import _PluginBase
from app.schemas.types import EventType, NotificationType
@ -154,7 +155,8 @@ class CloudflareSpeedTest(_PluginBase):
# 执行优选命令,-dd不测速
if SystemUtils.is_windows():
cf_command = f'cd \"{self._cf_path}\" && CloudflareST {self._additional_args} -o \"{self._result_file}\"' + (
f' -f \"{self._cf_ipv4}\"' if self._ipv4 else '') + (f' -f \"{self._cf_ipv6}\"' if self._ipv6 else '')
f' -f \"{self._cf_ipv4}\"' if self._ipv4 else '') + (
f' -f \"{self._cf_ipv6}\"' if self._ipv6 else '')
else:
cf_command = f'cd {self._cf_path} && chmod a+x {self._binary_name} && ./{self._binary_name} {self._additional_args} -o {self._result_file}' + (
f' -f {self._cf_ipv4}' if self._ipv4 else '') + (f' -f {self._cf_ipv6}' if self._ipv6 else '')
@ -313,7 +315,7 @@ class CloudflareSpeedTest(_PluginBase):
# 重装后数据库有版本数据,但是本地没有则重装
if not install_flag and release_version == self._version and not Path(
f'{self._cf_path}/{self._binary_name}').exists() and not Path(
f'{self._cf_path}/CloudflareST.exe').exists():
f'{self._cf_path}/CloudflareST.exe').exists():
logger.warn(f"未检测到CloudflareSpeedTest本地版本重新安装")
install_flag = True
@ -757,3 +759,10 @@ 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()

View File

@ -46,6 +46,8 @@ class EventType(Enum):
NameRecognizeResult = "name.recognize.result"
# 目录监控同步
DirectorySync = "directory.sync"
# Cloudflare IP优选
CloudFlareSpeedTest = "cloudflare.speedtest"
# 系统配置Key字典