11
This commit is contained in:
@@ -237,6 +237,46 @@ class JX3Service:
|
|||||||
return return_data
|
return return_data
|
||||||
|
|
||||||
|
|
||||||
|
async def zhuangtai(self) -> Dict[str, Any]:
|
||||||
|
"""区服状态"""
|
||||||
|
return_data = self._init_return_data()
|
||||||
|
|
||||||
|
|
||||||
|
data: Optional[Dict[str, Any]] = await self._base_request("jx3_zhuangtai", "GET")
|
||||||
|
|
||||||
|
if not data:
|
||||||
|
return_data["msg"] = "获取接口信息失败"
|
||||||
|
return return_data
|
||||||
|
|
||||||
|
server_wj = []
|
||||||
|
server_dx = []
|
||||||
|
server_sx = []
|
||||||
|
|
||||||
|
for itme in data:
|
||||||
|
if itme['zone'] == "无界区":
|
||||||
|
server_wj.append(itme)
|
||||||
|
elif itme['zone'] == "电信区":
|
||||||
|
server_dx.append(itme)
|
||||||
|
elif itme['zone'] == "双线区":
|
||||||
|
server_sx.append(itme)
|
||||||
|
|
||||||
|
return_data["data"]["server_wj"] = server_wj
|
||||||
|
return_data["data"]["server_dx"] = server_dx
|
||||||
|
return_data["data"]["server_sx"] = server_sx
|
||||||
|
|
||||||
|
# 加载模板
|
||||||
|
try:
|
||||||
|
return_data["temp"] = load_template("qufuzhuangtai.html")
|
||||||
|
except FileNotFoundError as e:
|
||||||
|
logger.error(f"加载模板失败: {e}")
|
||||||
|
return_data["msg"] = "系统错误:模板文件不存在"
|
||||||
|
return return_data
|
||||||
|
|
||||||
|
return_data["code"] = 200
|
||||||
|
|
||||||
|
return return_data
|
||||||
|
|
||||||
|
|
||||||
async def jigai(self) -> Dict[str, Any]:
|
async def jigai(self) -> Dict[str, Any]:
|
||||||
"""技改记录"""
|
"""技改记录"""
|
||||||
return_data = self._init_return_data()
|
return_data = self._init_return_data()
|
||||||
|
|||||||
@@ -195,5 +195,13 @@
|
|||||||
"server": "梦江南",
|
"server": "梦江南",
|
||||||
"token": ""
|
"token": ""
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"jx3_zhuangtai":{
|
||||||
|
"url":"https://www.jx3api.com/data/server/status",
|
||||||
|
"method":"GET",
|
||||||
|
"description":"此接口用于查询指定服务器的当前状态,包括 维护、正常、繁忙 和 爆满 等状态信息。",
|
||||||
|
"params":{
|
||||||
|
"server": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -70,9 +70,6 @@ class Jx3ApiPlugin(Star):
|
|||||||
await self.at.destroy()
|
await self.at.destroy()
|
||||||
logger.error(f"功能示例初始化失败: {e}")
|
logger.error(f"功能示例初始化失败: {e}")
|
||||||
return
|
return
|
||||||
# 周期函数调用
|
|
||||||
|
|
||||||
# 初始化函数
|
|
||||||
|
|
||||||
logger.info("jx3api异步插件初始化完成")
|
logger.info("jx3api异步插件初始化完成")
|
||||||
|
|
||||||
@@ -168,6 +165,23 @@ class Jx3ApiPlugin(Star):
|
|||||||
yield event.plain_result("猪脑过载,请稍后再试")
|
yield event.plain_result("猪脑过载,请稍后再试")
|
||||||
|
|
||||||
|
|
||||||
|
@jx3.command("状态")
|
||||||
|
async def jx3_zhuangtai(self, event: AstrMessageEvent,server: str = None):
|
||||||
|
"""剑三 开服 服务器"""
|
||||||
|
try:
|
||||||
|
data= await self.jx3fun.zhuangtai()
|
||||||
|
logger.info(data)
|
||||||
|
if data["code"] == 200:
|
||||||
|
url = await self.html_render(data["temp"], data["data"], options={})
|
||||||
|
yield event.image_result(url)
|
||||||
|
else:
|
||||||
|
yield event.plain_result(data["msg"])
|
||||||
|
return
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"功能函数执行错误: {e}")
|
||||||
|
yield event.plain_result("猪脑过载,请稍后再试")
|
||||||
|
|
||||||
|
|
||||||
@jx3.command("沙盘")
|
@jx3.command("沙盘")
|
||||||
async def jx3_shapan(self, event: AstrMessageEvent,server: str = None):
|
async def jx3_shapan(self, event: AstrMessageEvent,server: str = None):
|
||||||
"""剑三 沙盘 服务器"""
|
"""剑三 沙盘 服务器"""
|
||||||
|
|||||||
@@ -0,0 +1,117 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>区服状态面板</title>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
padding: 24px;
|
||||||
|
background: #f5f7fb;
|
||||||
|
color: #2c2c33;
|
||||||
|
font-family: "Microsoft YaHei", Arial, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section {
|
||||||
|
margin-bottom: 32px;
|
||||||
|
}
|
||||||
|
.section-title {
|
||||||
|
font-size: 32px;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-bottom: 16px;
|
||||||
|
border-left: 4px solid #4f7cff;
|
||||||
|
padding-left: 10px;
|
||||||
|
color: #1f2a44;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-container {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(4, 1fr);
|
||||||
|
gap: 16px;
|
||||||
|
}
|
||||||
|
.card {
|
||||||
|
border-radius: 8px;
|
||||||
|
padding: 30px 12px;
|
||||||
|
text-align: center;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 28px;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 整块背景颜色控制 */
|
||||||
|
.爆满 {
|
||||||
|
background: #d9534f; /* 红 */
|
||||||
|
}
|
||||||
|
.拥挤 {
|
||||||
|
background: #f0ad4e; /* 橙 */
|
||||||
|
color: #3b2e00;
|
||||||
|
}
|
||||||
|
.正常, .顺畅 {
|
||||||
|
background: #4cae4c; /* 绿 */
|
||||||
|
}
|
||||||
|
.维护 {
|
||||||
|
background: #bfbfbf; /* 灰 */
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.empty {
|
||||||
|
color: #7a7f99;
|
||||||
|
font-size: 16px;
|
||||||
|
padding: 6px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 1000px) {
|
||||||
|
.card-container { grid-template-columns: repeat(2, 1fr); }
|
||||||
|
}
|
||||||
|
@media (max-width: 600px) {
|
||||||
|
.card-container { grid-template-columns: repeat(1, 1fr); }
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<!-- 无界区 -->
|
||||||
|
<div class="section">
|
||||||
|
<div class="section-title">无界区({{ server_wj|length if server_wj else 0 }})</div>
|
||||||
|
{% if server_wj %}
|
||||||
|
<div class="card-container">
|
||||||
|
{% for item in server_wj %}
|
||||||
|
<div class="card {{ item.status }}">{{ item.server }}</div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
<div class="empty">暂无数据</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 电信区 -->
|
||||||
|
<div class="section">
|
||||||
|
<div class="section-title">电信区({{ server_dx|length if server_dx else 0 }})</div>
|
||||||
|
{% if server_dx %}
|
||||||
|
<div class="card-container">
|
||||||
|
{% for item in server_dx %}
|
||||||
|
<div class="card {{ item.status }}">{{ item.server }}</div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
<div class="empty">暂无数据</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 双线区 -->
|
||||||
|
<div class="section">
|
||||||
|
<div class="section-title">双线区({{ server_sx|length if server_sx else 0 }})</div>
|
||||||
|
{% if server_sx %}
|
||||||
|
<div class="card-container">
|
||||||
|
{% for item in server_sx %}
|
||||||
|
<div class="card {{ item.status }}">{{ item.server }}</div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
<div class="empty">暂无数据</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Reference in New Issue
Block a user