From 3445809d71cae9614b3c3b9d67df35dba837a795 Mon Sep 17 00:00:00 2001 From: qsc20001102 Date: Sat, 13 Dec 2025 15:14:49 +0800 Subject: [PATCH] 11 --- core/jx3_service.py | 83 +++++++++++++++++++++++++++ data/api_config.json | 20 +++++++ main.py | 32 +++++++++++ templates/dilujilu.html | 105 +++++++++++++++++++++++++++++++++++ templates/tuanduizhaomu.html | 97 ++++++++++++++++++++++++++++++++ 5 files changed, 337 insertions(+) create mode 100644 templates/dilujilu.html create mode 100644 templates/tuanduizhaomu.html diff --git a/core/jx3_service.py b/core/jx3_service.py index 7ab901e..86061e0 100644 --- a/core/jx3_service.py +++ b/core/jx3_service.py @@ -697,3 +697,86 @@ class JX3Service: return_data["code"] = 200 return return_data + + + async def dilujilu(self, server: str) -> Dict[str, Any]: + """的卢记录""" + return_data = self._init_return_data() + + # 获取配置中的 Token + token = self._config.get("jx3api_token", "") + if token == "": + return_data["msg"] = "系统未配置API访问Token" + return return_data + + # 1. 构造请求参数 + params = {"server": server, "token": token} + + # 2. 调用基础请求 + data: Optional[Dict[str, Any]] = await self._base_request( + "jx3_dilujilu", "GET", params=params + ) + + if not data: + return_data["msg"] = "获取接口信息失败" + return return_data + + # 3. 处理返回数据 + for item in data: + item["refresh_time"] = datetime.fromtimestamp(item["refresh_time"]).strftime("%Y-%m-%d %H:%M:%S") + item["capture_time"] = datetime.fromtimestamp(item["capture_time"]).strftime("%Y-%m-%d %H:%M:%S") + item["auction_time"] = datetime.fromtimestamp(item["auction_time"]).strftime("%Y-%m-%d %H:%M:%S") + + # 4. 加载模板 + try: + return_data["temp"] = load_template("dilujilu.html") + except FileNotFoundError as e: + logger.error(f"加载模板失败: {e}") + return_data["msg"] = "系统错误:模板文件不存在" + return return_data + + return_data["data"]["list"] = data + return_data["code"] = 200 + + return return_data + + + async def tuanduizhaomu(self, server: str, keyword: str) -> Dict[str, Any]: + """团队招募""" + return_data = self._init_return_data() + + # 获取配置中的 Token + token = self._config.get("jx3api_token", "") + if token == "": + return_data["msg"] = "系统未配置API访问Token" + return return_data + + # 1. 构造请求参数 + params = {"server": server, "keyword": keyword, "token": token} + + # 2. 调用基础请求 + data: Optional[Dict[str, Any]] = await self._base_request( + "jx3_tuanduizhaomu", "GET", params=params + ) + + if not data: + return_data["msg"] = "获取接口信息失败" + return return_data + + # 3. 处理返回数据 + for item in data["data"]: + item["createTime"] = datetime.fromtimestamp(item["createTime"]).strftime("%Y-%m-%d %H:%M:%S") + item["number"] = f"{item['number']}/{item['maxNumber']}" + + # 4. 加载模板 + try: + return_data["temp"] = load_template("tuanduizhaomu.html") + except FileNotFoundError as e: + logger.error(f"加载模板失败: {e}") + return_data["msg"] = "系统错误:模板文件不存在" + return return_data + + return_data["data"]["list"] = data["data"] + return_data["code"] = 200 + + return return_data \ No newline at end of file diff --git a/data/api_config.json b/data/api_config.json index 1829732..a4f3889 100644 --- a/data/api_config.json +++ b/data/api_config.json @@ -176,5 +176,25 @@ "name": "萝莉", "token":"" } + }, + "jx3_dilujilu":{ + "url":"https://www.jx3api.com/data/dilu/records", + "method":"GET", + "description":"此接口用于查询的卢马的刷新、捕获及拍卖记录,包括捕获者、拍卖价格及相关时间信息", + "params":{ + "server": "唯我独尊", + "token":"" + } + }, + "jx3_tuanduizhaomu":{ + "url":"https://www.jx3api.com/data/member/recruit", + "method":"GET", + "description":"此接口用于查询指定区服的团队招募信息,包括活动类型、队长信息及当前队伍状态。", + "params":{ + "server": "梦江南", + "keyword": "25人普通会战弓月城", + "table": 1, + "token":"" + } } } \ No newline at end of file diff --git a/main.py b/main.py index 145e2d3..b2d25df 100644 --- a/main.py +++ b/main.py @@ -324,6 +324,38 @@ class Jx3ApiPlugin(Star): yield event.plain_result("猪脑过载,请稍后再试") + @jx3.command("的卢") + async def jx3_dilujilu(self, event: AstrMessageEvent,server: str = "梦江南"): + """剑三 的卢 服务器""" + try: + data= await self.jx3fun.dilujilu(server) + 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_tuanduizhaomu(self, event: AstrMessageEvent,keyword: str = "25人普通会战弓月城", server: str = "梦江南"): + """剑三 招募 副本 服务器""" + try: + data= await self.jx3fun.tuanduizhaomu(server,keyword) + 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("猪脑过载,请稍后再试") + + async def terminate(self): """可选择实现异步的插件销毁方法,当插件被卸载/停用时会调用。""" # 关闭数据库连接 diff --git a/templates/dilujilu.html b/templates/dilujilu.html new file mode 100644 index 0000000..b98337c --- /dev/null +++ b/templates/dilujilu.html @@ -0,0 +1,105 @@ + + + + +的卢记录 + + + + + +
+

的卢记录

+ + + + + + + + + + + + + + + + + + {% for m in list %} + + + + + + + + + + + + {% endfor %} + +
服务器开始时间捕获时间捕获人所属阵营拍卖时间拍卖价格拍得者所属阵营
{{ m.server }}{{ m.refresh_time }}{{ m.capture_time }}{{ m.capture_role_name }}{{ m.capture_camp_name }}{{ m.auction_time }}{{ m.auction_amount }}{{ m.auction_role_name }}{{ m.auction_camp_name }}
+ +
+ + + diff --git a/templates/tuanduizhaomu.html b/templates/tuanduizhaomu.html new file mode 100644 index 0000000..3ec9345 --- /dev/null +++ b/templates/tuanduizhaomu.html @@ -0,0 +1,97 @@ + + + + +团队招募 + + + + + +
+

团队招募

+ + + + + + + + + + + + + + {% for m in list %} + + + + + + + + {% endfor %} + +
副本名称招募人招募时间人数招募说明
{{ m.activity }}{{ m.leader }}{{ m.createTime }}{{ m.number }}{{ m.content }}
+ +
+ + +