diff --git a/core/jx3_service.py b/core/jx3_service.py index f6c3d3a..fb9401e 100644 --- a/core/jx3_service.py +++ b/core/jx3_service.py @@ -235,6 +235,46 @@ class JX3Service: return_data["msg"] = "接口未返回文本" 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]: diff --git a/data/api_config.json b/data/api_config.json index 49e1b20..78b7c8b 100644 --- a/data/api_config.json +++ b/data/api_config.json @@ -195,5 +195,13 @@ "server": "梦江南", "token": "" } + }, + "jx3_zhuangtai":{ + "url":"https://www.jx3api.com/data/server/status", + "method":"GET", + "description":"此接口用于查询指定服务器的当前状态,包括 维护、正常、繁忙 和 爆满 等状态信息。", + "params":{ + "server": "" + } } } \ No newline at end of file diff --git a/main.py b/main.py index ac46a8b..1a5a3dd 100644 --- a/main.py +++ b/main.py @@ -70,9 +70,6 @@ class Jx3ApiPlugin(Star): await self.at.destroy() logger.error(f"功能示例初始化失败: {e}") return - # 周期函数调用 - - # 初始化函数 logger.info("jx3api异步插件初始化完成") @@ -168,6 +165,23 @@ class Jx3ApiPlugin(Star): 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("沙盘") async def jx3_shapan(self, event: AstrMessageEvent,server: str = None): """剑三 沙盘 服务器""" diff --git a/templates/qufuzhuangtai.html b/templates/qufuzhuangtai.html new file mode 100644 index 0000000..2926186 --- /dev/null +++ b/templates/qufuzhuangtai.html @@ -0,0 +1,117 @@ + + + + + 区服状态面板 + + + + + + +
+
无界区({{ server_wj|length if server_wj else 0 }})
+ {% if server_wj %} +
+ {% for item in server_wj %} +
{{ item.server }}
+ {% endfor %} +
+ {% else %} +
暂无数据
+ {% endif %} +
+ + +
+
电信区({{ server_dx|length if server_dx else 0 }})
+ {% if server_dx %} +
+ {% for item in server_dx %} +
{{ item.server }}
+ {% endfor %} +
+ {% else %} +
暂无数据
+ {% endif %} +
+ + +
+
双线区({{ server_sx|length if server_sx else 0 }})
+ {% if server_sx %} +
+ {% for item in server_sx %} +
{{ item.server }}
+ {% endfor %} +
+ {% else %} +
暂无数据
+ {% endif %} +
+ + +