111
This commit is contained in:
@@ -813,3 +813,43 @@ class JX3Service:
|
|||||||
return_data["code"] = 200
|
return_data["code"] = 200
|
||||||
|
|
||||||
return return_data
|
return return_data
|
||||||
|
|
||||||
|
|
||||||
|
async def zhengyingpaimai(self, server: str, name: 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_zhengyingpaimai", "GET", params=params
|
||||||
|
)
|
||||||
|
|
||||||
|
if not data:
|
||||||
|
return_data["msg"] = "获取接口信息失败"
|
||||||
|
return return_data
|
||||||
|
|
||||||
|
# 3. 处理返回数据
|
||||||
|
for item in data:
|
||||||
|
item["time"] = datetime.fromtimestamp(item["time"]).strftime("%Y-%m-%d %H:%M:%S")
|
||||||
|
|
||||||
|
# 4. 加载模板
|
||||||
|
try:
|
||||||
|
return_data["temp"] = load_template("zhengyingpaimai.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
|
||||||
@@ -254,5 +254,16 @@
|
|||||||
"params":{
|
"params":{
|
||||||
"limit": 1
|
"limit": 1
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"jx3_zhengyingpaimai":{
|
||||||
|
"url":"https://www.jx3api.com/data/auction/records",
|
||||||
|
"method":"GET",
|
||||||
|
"description":"此接口用于查询阵营拍卖的记录,包括拍卖的物品名称、金额以及相关信息。支持通过区服名称和物品名称进行精确或模糊查询。",
|
||||||
|
"params":{
|
||||||
|
"server": "梦江南",
|
||||||
|
"name": "玄晶",
|
||||||
|
"limit": 20,
|
||||||
|
"token": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -426,6 +426,22 @@ class Jx3ApiPlugin(Star):
|
|||||||
yield event.plain_result("猪脑过载,请稍后再试")
|
yield event.plain_result("猪脑过载,请稍后再试")
|
||||||
|
|
||||||
|
|
||||||
|
@jx3.command("阵营拍卖")
|
||||||
|
async def jx3_zhengyingpaimai(self, event: AstrMessageEvent,name: str = "玄晶", server: str = None):
|
||||||
|
"""剑三 阵营拍卖 物品名称 服务器"""
|
||||||
|
try:
|
||||||
|
data= await self.jx3fun.zhengyingpaimai(await self.serverdefault(server), name)
|
||||||
|
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):
|
async def terminate(self):
|
||||||
"""可选择实现异步的插件销毁方法,当插件被卸载/停用时会调用。"""
|
"""可选择实现异步的插件销毁方法,当插件被卸载/停用时会调用。"""
|
||||||
# 关闭数据库连接
|
# 关闭数据库连接
|
||||||
|
|||||||
@@ -0,0 +1,114 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>阵营拍卖</title>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: 'Microsoft YaHei', Arial, sans-serif;
|
||||||
|
background: #f1f2f6;
|
||||||
|
margin: 0;
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
max-width: 1300px;
|
||||||
|
margin: 0 auto;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 32px;
|
||||||
|
margin-bottom: 25px;
|
||||||
|
color: #222;
|
||||||
|
font-weight: 800;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
width: 100%;
|
||||||
|
border-collapse: collapse;
|
||||||
|
background: white;
|
||||||
|
border-radius: 12px;
|
||||||
|
overflow: hidden;
|
||||||
|
box-shadow: 0 4px 16px rgba(0,0,0,0.08);
|
||||||
|
margin-top: 10px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
thead {
|
||||||
|
background: #d93939;
|
||||||
|
color: white;
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
th, td {
|
||||||
|
padding: 14px 12px;
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
tbody tr:hover {
|
||||||
|
background: #fff2f2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-col {
|
||||||
|
max-width: 360px;
|
||||||
|
line-height: 1.5em;
|
||||||
|
word-break: break-word;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ===== 阵营整行着色 ===== */
|
||||||
|
tr.camp-haoqi {
|
||||||
|
color: #1e6bd6; /* 浩气盟 */
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.camp-eren {
|
||||||
|
color: #d93939; /* 恶人谷 */
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<h1>阵营拍卖</h1>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>服务器</th>
|
||||||
|
<th>物品名称</th>
|
||||||
|
<th>拍得者</th>
|
||||||
|
<th>所属阵营</th>
|
||||||
|
<th>拍卖价格</th>
|
||||||
|
<th>拍卖时间</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody>
|
||||||
|
{% for m in list %}
|
||||||
|
<tr
|
||||||
|
{% if m.camp_name == '浩气盟' %}
|
||||||
|
class="camp-haoqi"
|
||||||
|
{% elif m.camp_name == '恶人谷' %}
|
||||||
|
class="camp-eren"
|
||||||
|
{% endif %}
|
||||||
|
>
|
||||||
|
<td>{{ m.server }}</td>
|
||||||
|
<td>{{ m.name }}</td>
|
||||||
|
<td>{{ m.role_name }}</td>
|
||||||
|
<td>{{ m.camp_name }}</td>
|
||||||
|
<td>{{ m.amount }}</td>
|
||||||
|
<td>{{ m.time }}</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Reference in New Issue
Block a user