From f54ac15c9f46cdd5bfe2ff63f2563bb95d2d2e4d Mon Sep 17 00:00:00 2001 From: qsc20001102 Date: Mon, 16 Mar 2026 16:26:47 +0800 Subject: [PATCH] OK --- CHANGELOG.md | 6 +++++ core/jx3_data.py | 66 +++++++++++++++++++++++------------------------- main.py | 2 +- metadata.yaml | 2 +- 4 files changed, 39 insertions(+), 37 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9625432..8c35be6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ ## 更新记录 +### version: 1.2.4: + +角色信息查询数据展示优化 + +角色名片查询功能优化 + ### version: 1.2.3: 查询个人奇遇的指令名称调整为 **查询** diff --git a/core/jx3_data.py b/core/jx3_data.py index abea4b2..0fa3c37 100644 --- a/core/jx3_data.py +++ b/core/jx3_data.py @@ -816,54 +816,51 @@ class JX3Service: return return_data - async def jueshemingpian(self, server: str, name:str ) -> Dict[str, Any]: + async def jueshemingpian(self, server: str, name: str) -> Dict[str, Any]: """角色名片""" return_data = self._init_return_data() - + # 1. 构造请求参数 - params = {"server": server, "name": name,"token": self.token} - + params = {"server": server, "name": name, "token": self.token} + # 2. 调用基础请求 data: Optional[list[Dict[str, Any]]] = await self._base_request( "jx3_allmingpian", "GET", params=params ) - + if not data: return_data["msg"] = "未找到该角色" return return_data - - # 3. 处理返回数据 (直接提取图片 URL) - list_msg = [] - list_url = [] + # 3. 处理返回数据 try: + chain = [] for m in data: - msg = f"第{m.get('showIndex')}张 " - if m.get('showActive'): - msg += "已启用" - else: - msg += "未启用" - list_msg.append(msg) - list_url.append(m.get('showAvatar')) + status = "已启用" if m.get("showActive") else "未启用" + msg = f"第{m.get('showIndex')}张 {status}" + url = m.get("showAvatar") + + if not url: + logger.warning(f"第{m.get('showIndex')}张名片缺少图片URL,已跳过") + continue + + chain.extend([ + Comp.Plain(msg), + Comp.Image.fromURL(url), + ]) + + if not chain: + return_data["msg"] = "未获取到有效的名片数据" + return return_data - chain = [ - Comp.Plain(list_msg[0]), - Comp.Image.fromURL(list_url[0]), - Comp.Plain(list_msg[1]), - Comp.Image.fromURL(list_url[1]), - Comp.Plain(list_msg[2]), - Comp.Image.fromURL(list_url[2]), - ] except Exception as e: logger.error(f"数据处理时出错: {e}") - return_data["msg"] = "处理接口返回信息时出错" - return return_data + return_data["msg"] = "处理接口返回信息时出错" + return return_data - return_data["data"] = chain - - + return_data["data"] = chain return_data["code"] = 200 - + return return_data @@ -1507,12 +1504,11 @@ class JX3Service: try: # 格式化字符串,利用字典的 get 方法提供默认值 result_msg = ( - f"大区:{data.get('zoneName', '无')}\n" - f"服务器:{data.get('serverName', '无')}\n" + f"服务器:{data.get('zoneName', '无')}·{data.get('serverName', '无')}\n" f"名称:{data.get('roleName', '无')}\n" - f"ID:{data.get('roleId', '无')}\n" - f"门派:{data.get('forceName', '无')}\n" - f"体型:{data.get('bodyName', '无')}\n" + f"角色ID:{data.get('roleId', '无')}\n" + f"全区ID:{data.get('globalRoleId', '无')}\n" + f"职业:{data.get('forceName', '无')}·{data.get('bodyName', '无')}\n" f"帮会:{data.get('tongName', '无')}\n" f"阵营:{data.get('campName', '无')}\n" ) diff --git a/main.py b/main.py index e3894a6..456c608 100644 --- a/main.py +++ b/main.py @@ -16,7 +16,7 @@ from .core.fun_basic import load_as_base64 @register("astrbot_plugin_jx3", "fxdyz", "通过调用剑网三API接口获取游戏数据,处理发送。", - "1.2.3", + "1.2.4", "https://github.com/qsc20001102/astrbot_plugin_jx3api" ) class Jx3ApiPlugin(Star): diff --git a/metadata.yaml b/metadata.yaml index d8473b7..4772004 100644 --- a/metadata.yaml +++ b/metadata.yaml @@ -1,6 +1,6 @@ name: astrbot_plugin_jx3 display_name: 剑网三游戏数据查询工具 desc: 通过接口调用剑网三API接口获取游戏数据,处理发送。 -version: v1.2.3 +version: v1.2.4 author: 飞翔大野猪 repo: https://github.com/qsc20001102/astrbot_plugin_jx3