diff --git a/core/jx3_service.py b/core/jx3_service.py index 689706c..b560c90 100644 --- a/core/jx3_service.py +++ b/core/jx3_service.py @@ -701,9 +701,6 @@ class JX3Service: data["showAvatar"] = "" logger.info("名片获取失败") - # 3. 处理返回数据 (直接提取图片 URL) - - # 4. 加载模板 try: return_data["temp"] = load_template("zhanji.html") @@ -712,8 +709,60 @@ class JX3Service: return_data["msg"] = "系统错误:模板文件不存在" return return_data - return_data["data"] = data return_data["code"] = 200 return return_data + + + async def juesheqiyu(self, name: str, 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, "name": name, "token": token} + + # 2. 调用基础请求 + data: Optional[Dict[str, Any]] = await self._base_request( + "jx3_qiyu", "GET", params=params + ) + + if not data: + return_data["msg"] = "未找到改角色奇遇信息" + return return_data + + # 3. 处理返回数据 + try: + return_data["data"]["ptqy"] = [] + return_data["data"]["jsqy"] = [] + return_data["data"]["cwqy"] = [] + + for item in data: + item["time"] = datetime.fromtimestamp(item["time"]).strftime("%Y-%m-%d %H:%M:%S") + if item["level"] == 1: + return_data["data"]["ptqy"].append(item) + if item["level"] == 2: + return_data["data"]["jsqy"].append(item) + if item["level"] == 3: + return_data["data"]["cwqy"].append(item) + except Exception as e: + logger.error(f"处理返回数据失败: {e}") + return_data["msg"] = "处理返回数据失败" + + # 4. 加载模板 + try: + return_data["temp"] = load_template("juesheqiyu.html") + except FileNotFoundError as e: + logger.error(f"加载模板失败: {e}") + return_data["msg"] = "系统错误:模板文件不存在" + return return_data + + return_data["code"] = 200 + + return return_data diff --git a/data/api_config.json b/data/api_config.json index a258fc1..d7d5b4b 100644 --- a/data/api_config.json +++ b/data/api_config.json @@ -228,5 +228,15 @@ "ticket": "a7fd656a52d747d7830cfa6d686e6030:qsc20001102:kingsoft::sVpKi7nFKzFlbTwtBMTg2w==", "token":"" } + }, + "jx3_qiyu":{ + "url":"https://www.jx3api.com/data/luck/adventure", + "method":"GET", + "description":"此接口用于查询指定角色的奇遇触发记录,包括奇遇事件、状态及触发时间。注意,数据可能存在遗漏", + "params":{ + "server": "梦江南", + "name": "飞翔大野猪", + "token":"" + } } } \ No newline at end of file diff --git a/main.py b/main.py index 2cd67ea..9d06065 100644 --- a/main.py +++ b/main.py @@ -212,7 +212,7 @@ class Jx3ApiPlugin(Star): @jx3.command("区服奇遇") - async def jx3_qiyu(self, event: AstrMessageEvent,adventureName: str = "阴阳两界", server: str = None): + async def jx3_qufuqiyu(self, event: AstrMessageEvent,adventureName: str = "阴阳两界", server: str = None): """剑三 区服奇遇 奇遇名称 服务器""" try: data= await self.jx3fun.qiyu(adventureName,await self.serverdefault(server)) @@ -388,6 +388,23 @@ class Jx3ApiPlugin(Star): yield event.plain_result("猪脑过载,请稍后再试") + @jx3.command("奇遇") + async def jx3_qiyu(self, event: AstrMessageEvent,name: str = "飞翔大野猪", server: str = None): + """剑三 奇遇 角色名称 服务器""" + try: + data= await self.jx3fun.juesheqiyu(name,await self.serverdefault(server)) + logger.info(f"数据打印: {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("猪脑过载,请稍后再试") + + async def terminate(self): """可选择实现异步的插件销毁方法,当插件被卸载/停用时会调用。""" # 关闭数据库连接 diff --git a/templates/juesheqiyu.html b/templates/juesheqiyu.html new file mode 100644 index 0000000..1cc5af0 --- /dev/null +++ b/templates/juesheqiyu.html @@ -0,0 +1,145 @@ + + +
+ +| 对战时长 | -心法 | -胜负 | -积分变化 | -最终积分 | -平均段位 | -MVP | -
|---|---|---|---|---|---|---|
| {{ m.endTime - m.startTime }} | -{{ m.kungfu }} | -{{ '胜' if m.won else '负' }} | -- {{ m.mmr }} - | -{{ m.totalMmr }} | -{{ m.avgGrade }} | -- {{ '是' if m.mvp else '-' }} - | -