From 2c2504f6d87b1045c57f9e696c56862ec9ce99b9 Mon Sep 17 00:00:00 2001 From: qsc20001102 Date: Sat, 13 Dec 2025 11:06:37 +0800 Subject: [PATCH] 11 --- core/jx3_service.py | 38 +++++++++++++++++++++++++++++++++----- data/api_config.json | 11 +++++++++++ main.py | 28 ++++++++++++++++++++++++++-- 3 files changed, 70 insertions(+), 7 deletions(-) diff --git a/core/jx3_service.py b/core/jx3_service.py index 785de56..628d6ac 100644 --- a/core/jx3_service.py +++ b/core/jx3_service.py @@ -596,17 +596,16 @@ class JX3Service: async def jueshemingpian(self, server: str, name:str ) -> Dict[str, Any]: - """区服沙盘""" + """角色名片""" return_data = self._init_return_data() - - token = self._config.get("jx3api_token", "") - logger.info(f"使用的API Token: {token}") + # 获取配置中的 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. 调用基础请求 @@ -623,3 +622,32 @@ class JX3Service: return_data["code"] = 200 return return_data + + + async def shuijimingpian(self, force: str, body: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, "body": body, "force":force, "token": token} + + # 2. 调用基础请求 + data: Optional[Dict[str, Any]] = await self._base_request( + "jx3_shuijimingpian", "GET", params=params + ) + + if not data: + return_data["msg"] = "获取接口信息失败" + return return_data + + # 3. 处理返回数据 (直接提取图片 URL) + return_data["data"] = data + return_data["code"] = 200 + + return return_data diff --git a/data/api_config.json b/data/api_config.json index b59c02b..23e08a3 100644 --- a/data/api_config.json +++ b/data/api_config.json @@ -155,5 +155,16 @@ "name": "夜温言@长安城", "token":"" } + }, + "jx3_shuijimingpian":{ + "url":"https://www.jx3api.com/data/show/random", + "method":"GET", + "description":"此接口用于随机读取一张符合条件的角色名片。", + "params":{ + "server": "唯我独尊", + "body": "萝莉", + "force":"万花", + "token":"" + } } } \ No newline at end of file diff --git a/main.py b/main.py index d644ee1..c324906 100644 --- a/main.py +++ b/main.py @@ -10,6 +10,7 @@ from astrbot.api.event import filter, AstrMessageEvent, MessageEventResult, Mess from astrbot.api.star import Context, Star, register, StarTools from astrbot.api import logger from astrbot.api import AstrBotConfig +import astrbot.api.message_components as Comp from .core.aiosqlite import AsyncSQLite from .core.jx3_service import JX3Service @@ -269,11 +270,34 @@ class Jx3ApiPlugin(Star): @jx3.command("名片") async def jx3_jueshemingpian(self, event: AstrMessageEvent,server: str = "梦江南", name: str = "飞翔大野猪"): - """剑三 沙盘 服务器""" + """剑三 名片 服务器 角色""" try: data= await self.jx3fun.jueshemingpian(server,name) if data["code"] == 200: - yield event.image_result(data["data"]["showAvatar"]) + chain = [ + Comp.Plain(f"{data['data']['serverName']}--{data['data']['roleName']} \n"), + Comp.Image.fromURL(f"{data['data']['showAvatar']}") + ] + yield event.chain_result(chain) + 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_shuijimingpian(self, event: AstrMessageEvent,force: str = "万花", body: str = "萝莉", server: str = "梦江南"): + """剑三 随机名片 服务器 角色""" + try: + data= await self.jx3fun.shuijimingpian(force,body,server) + if data["code"] == 200: + chain = [ + Comp.Plain(f"{data['data']['serverName']}--{data['data']['roleName']} \n"), + Comp.Image.fromURL(f"{data['data']['showAvatar']}") + ] + yield event.chain_result(chain) else: yield event.plain_result(data["msg"]) return