This commit is contained in:
2026-03-03 09:55:59 +08:00
parent 5a286779fc
commit 0758bc2940
3 changed files with 57 additions and 4 deletions
+33 -3
View File
@@ -4,6 +4,7 @@ from typing import Dict, Any, Optional, List, Union
from astrbot.api import logger from astrbot.api import logger
from astrbot.api import AstrBotConfig from astrbot.api import AstrBotConfig
import astrbot.api.message_components as Comp
from .request import APIClient from .request import APIClient
from .sqlite import AsyncSQLiteDB from .sqlite import AsyncSQLiteDB
@@ -823,8 +824,8 @@ class JX3Service:
params = {"server": server, "name": name,"token": self.token} params = {"server": server, "name": name,"token": self.token}
# 2. 调用基础请求 # 2. 调用基础请求
data: Optional[Dict[str, Any]] = await self._base_request( data: Optional[list[Dict[str, Any]]] = await self._base_request(
"jx3_jieshemingpian", "GET", params=params "jx3_allmingpian", "GET", params=params
) )
if not data: if not data:
@@ -832,7 +833,35 @@ class JX3Service:
return return_data return return_data
# 3. 处理返回数据 (直接提取图片 URL) # 3. 处理返回数据 (直接提取图片 URL)
return_data["data"] = data['showAvatar'] list_msg = []
list_url = []
try:
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'))
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["data"] = chain
return_data["code"] = 200 return_data["code"] = 200
return return_data return return_data
@@ -856,6 +885,7 @@ class JX3Service:
# 3. 处理返回数据 (直接提取图片 URL) # 3. 处理返回数据 (直接提取图片 URL)
return_data["data"] = data['showAvatar'] return_data["data"] = data['showAvatar']
return_data["code"] = 200 return_data["code"] = 200
return return_data return return_data
+14 -1
View File
@@ -94,6 +94,19 @@ class MessageBuilder:
await event.send(event.plain_result("猪脑过载,请稍后再试")) await event.send(event.plain_result("猪脑过载,请稍后再试"))
async def plain_chain(self, event: AstrMessageEvent, action):
"""富媒体消息"""
data= await action()
try:
if data["code"] == 200:
await event.send(event.chain_result(data["data"]))
else:
await event.send(event.plain_result(data["msg"]))
except Exception as e:
logger.error(f"功能函数执行错误: {e}")
await event.send(event.plain_result("猪脑过载,请稍后再试"))
async def handler_plain_image_msg(self, event: AstrMessageEvent, action1, action2): async def handler_plain_image_msg(self, event: AstrMessageEvent, action1, action2):
"""两轮会话消息发送通用,先文本列表等反馈序号在发送图片""" """两轮会话消息发送通用,先文本列表等反馈序号在发送图片"""
# 会话触发 # 会话触发
@@ -281,7 +294,7 @@ class MessageBuilder:
async def jx3_jueshemingpian(self, event: AstrMessageEvent, name: str = "飞翔大野猪", server: str = ""): async def jx3_jueshemingpian(self, event: AstrMessageEvent, name: str = "飞翔大野猪", server: str = ""):
"""剑三 名片 角色 服务器""" """剑三 名片 角色 服务器"""
return await self.image_msg(event, lambda: self.jx3api.jueshemingpian( self.serverdefault(server),name)) return await self.plain_chain(event, lambda: self.jx3api.jueshemingpian( self.serverdefault(server),name))
async def jx3_shuijimingpian(self, event: AstrMessageEvent,force: str = "万花", body: str = "萝莉", server: str = ""): async def jx3_shuijimingpian(self, event: AstrMessageEvent,force: str = "万花", body: str = "萝莉", server: str = ""):
+10
View File
@@ -321,5 +321,15 @@
"mount": "", "mount": "",
"star": "1" "star": "1"
} }
},
"jx3_allmingpian":{
"url":"https://www.jx3api.com/data/show/records",
"method":"GET",
"description":"获取角色全部名片",
"params":{
"server": "",
"name": "",
"token": ""
}
} }
} }