功能补充
This commit is contained in:
@@ -16,10 +16,10 @@
|
|||||||
|
|
||||||
插件功能绝大部分都是用AI写的,又进行了调试。
|
插件功能绝大部分都是用AI写的,又进行了调试。
|
||||||
|
|
||||||
目前此插件能够完成绝大部分的功能查询,其他功能有空再说。
|
目前此插件能够完成部分的功能查询,其他功能有空再说。
|
||||||
|
|
||||||
此插件的所有数据几乎全部依赖jx3api提供的API接口,所以进阶功能需要向其购买token才可使用。
|
此插件的所有数据几乎全部依赖jx3api提供的API接口,所以进阶功能需要向其购买token才可使用。普通功能是免token的。
|
||||||
部分进阶功能除了购买token以外还需要自己去抓包推栏app,获得推栏token才可使用。
|
部分进阶功能除了购买token以外还需要自己去抓包推栏app,获得推栏app的token才可正常使用。
|
||||||
|
|
||||||
## 更新记录
|
## 更新记录
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@ version: 1.0.0:大部分重要功能已经实现
|
|||||||
|
|
||||||
要想正常使用插件,需要正常配置token和推栏标识。
|
要想正常使用插件,需要正常配置token和推栏标识。
|
||||||
|
|
||||||
下面两个推送功能可以手动开启或者关闭,配置询问的周期时间,以及消息要推送的对象,推送ID可在聊天中使用/std查看。
|
下面两个推送功能可以手动开启或者关闭,配置询问的周期时间,以及消息要推送的对象,推送ID可在聊天中使用/std查看。要平台的完整ID。
|
||||||
|
|
||||||
## 使用方式
|
## 使用方式
|
||||||
|
|
||||||
|
|||||||
@@ -194,6 +194,21 @@ class JX3Commands(Star):
|
|||||||
yield event.plain_result("猪脑过载,请稍后再试")
|
yield event.plain_result("猪脑过载,请稍后再试")
|
||||||
|
|
||||||
|
|
||||||
|
async def jx3_qiwu(self, event: AstrMessageEvent, name: str):
|
||||||
|
"""剑三 器物 地图名称"""
|
||||||
|
try:
|
||||||
|
data= await self.jx3fun.qiwu(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 jx3_shapan(self, event: AstrMessageEvent,server: str = ""):
|
async def jx3_shapan(self, event: AstrMessageEvent,server: str = ""):
|
||||||
"""剑三 沙盘 服务器"""
|
"""剑三 沙盘 服务器"""
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -352,6 +352,40 @@ class JX3Service:
|
|||||||
return return_data
|
return return_data
|
||||||
|
|
||||||
|
|
||||||
|
async def qiwu(self,name: str) -> Dict[str, Any]:
|
||||||
|
"""器物"""
|
||||||
|
return_data = self._init_return_data()
|
||||||
|
|
||||||
|
# 1. 构造请求参数
|
||||||
|
params = { "name": name}
|
||||||
|
|
||||||
|
# 2. 调用基础请求
|
||||||
|
data: Optional[Dict[str, Any]] = await self._base_request(
|
||||||
|
"jx3_qiwu", "GET", params=params
|
||||||
|
)
|
||||||
|
if not data:
|
||||||
|
return_data["msg"] = "未查询到相关内容"
|
||||||
|
return return_data
|
||||||
|
|
||||||
|
# 3. 处理返回数据
|
||||||
|
try:
|
||||||
|
return_data["data"]["data"] = data
|
||||||
|
return_data["data"]["name"] = name
|
||||||
|
return_data["code"] = 200
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"数据处理时出错: {e}")
|
||||||
|
return_data["msg"] = "处理接口返回信息时出错"
|
||||||
|
|
||||||
|
# 加载模板
|
||||||
|
try:
|
||||||
|
return_data["temp"] = await load_template("qiwu.html")
|
||||||
|
except FileNotFoundError as e:
|
||||||
|
logger.error(f"加载模板失败: {e}")
|
||||||
|
return_data["msg"] = "系统错误:模板文件不存在"
|
||||||
|
|
||||||
|
return return_data
|
||||||
|
|
||||||
|
|
||||||
async def shapan(self, server: str ) -> Dict[str, Any]:
|
async def shapan(self, server: str ) -> Dict[str, Any]:
|
||||||
"""区服沙盘"""
|
"""区服沙盘"""
|
||||||
return_data = self._init_return_data()
|
return_data = self._init_return_data()
|
||||||
|
|||||||
@@ -267,6 +267,14 @@
|
|||||||
"name": ""
|
"name": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"jx3_qiwu":{
|
||||||
|
"url":"https://www.jx3api.com/data/home/travel",
|
||||||
|
"method":"GET",
|
||||||
|
"description":"此接口用于查询指定地图的装饰物品产出信息,包括装饰的属性、来源和外观等内容。",
|
||||||
|
"params":{
|
||||||
|
"name": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"jx3box_qiyugonglue":{
|
"jx3box_qiyugonglue":{
|
||||||
"url":"https://node.jx3box.com/serendipities",
|
"url":"https://node.jx3box.com/serendipities",
|
||||||
"method":"GET",
|
"method":"GET",
|
||||||
|
|||||||
@@ -234,6 +234,7 @@ class Jx3ApiPlugin(Star):
|
|||||||
"科举": self.jx3com.jx3_keju,
|
"科举": self.jx3com.jx3_keju,
|
||||||
"花价": self.jx3com.jx3_huajia,
|
"花价": self.jx3com.jx3_huajia,
|
||||||
"装饰": self.jx3com.jx3_zhuangshi,
|
"装饰": self.jx3com.jx3_zhuangshi,
|
||||||
|
"器物": self.jx3com.jx3_qiwu,
|
||||||
"沙盘": self.jx3com.jx3_shapan,
|
"沙盘": self.jx3com.jx3_shapan,
|
||||||
"奇遇统计": self.jx3com.jx3_qufuqiyu,
|
"奇遇统计": self.jx3com.jx3_qufuqiyu,
|
||||||
"奇遇攻略": self.jx3com.jx3_qiyugonglue,
|
"奇遇攻略": self.jx3com.jx3_qiyugonglue,
|
||||||
|
|||||||
@@ -216,6 +216,18 @@
|
|||||||
<div class="cmd-desc">查询各个地图的鲜花倍率</div>
|
<div class="cmd-desc">查询各个地图的鲜花倍率</div>
|
||||||
<div class="cmd-usage">花价 名称 [服务器] [家园地图]</div>
|
<div class="cmd-usage">花价 名称 [服务器] [家园地图]</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="command">
|
||||||
|
<div class="cmd-name">装饰</div>
|
||||||
|
<div class="cmd-desc">查询家园装饰的详细信息</div>
|
||||||
|
<div class="cmd-usage">装饰 名称 </div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="command">
|
||||||
|
<div class="cmd-name">器物</div>
|
||||||
|
<div class="cmd-desc">查询某地图可以获得的家园装饰物品信息</div>
|
||||||
|
<div class="cmd-usage">器物 地图名称 </div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,178 @@
|
|||||||
|
<!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: 1200px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 32px;
|
||||||
|
font-weight: 800;
|
||||||
|
margin-bottom: 28px;
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item {
|
||||||
|
display: flex;
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 14px;
|
||||||
|
box-shadow: 0 6px 18px rgba(0,0,0,0.08);
|
||||||
|
margin-bottom: 22px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item img {
|
||||||
|
width: 200px;
|
||||||
|
height: 200px;
|
||||||
|
object-fit: contain;
|
||||||
|
background: #fafafa;
|
||||||
|
padding: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info {
|
||||||
|
flex: 1;
|
||||||
|
padding: 18px 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.name {
|
||||||
|
font-size: 26px;
|
||||||
|
font-weight: 800;
|
||||||
|
margin-bottom: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 品质颜色 */
|
||||||
|
.q1 { color: #999; }
|
||||||
|
.q2 { color: #2ecc71; }
|
||||||
|
.q3 { color: #3498db; }
|
||||||
|
.q4 { color: #9b59b6; }
|
||||||
|
.q5 { color: #e67e22; }
|
||||||
|
|
||||||
|
.meta {
|
||||||
|
font-size: 15px;
|
||||||
|
color: #555;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.meta span {
|
||||||
|
margin-right: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tip {
|
||||||
|
background: #f8f9fb;
|
||||||
|
border-left: 4px solid #d93939;
|
||||||
|
padding: 8px 12px;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #555;
|
||||||
|
margin-bottom: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.attrs {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(5, 1fr);
|
||||||
|
gap: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.attr {
|
||||||
|
background: #fafafa;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 10px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.attr-name {
|
||||||
|
font-size: 13px;
|
||||||
|
color: #777;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.attr-value {
|
||||||
|
font-size: 17px;
|
||||||
|
font-weight: 700;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer {
|
||||||
|
margin-top: 10px;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #777;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<h1>地图装饰器物({{ name }})</h1>
|
||||||
|
|
||||||
|
{% for item in data %}
|
||||||
|
<div class="item">
|
||||||
|
<img src="{{ item.image }}" alt="{{ item.name }}">
|
||||||
|
|
||||||
|
<div class="info">
|
||||||
|
<div class="name q{{ item.color }}">
|
||||||
|
{{ item.name }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="meta">
|
||||||
|
<span>来源:{{ item.source }}</span>
|
||||||
|
<span>数量限制:{{ item.limit }}</span>
|
||||||
|
<span>品质值:{{ item.quality }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% if item.tip %}
|
||||||
|
<div class="tip">
|
||||||
|
{{ item.tip }}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div class="attrs">
|
||||||
|
<div class="attr">
|
||||||
|
<div class="attr-name">观赏</div>
|
||||||
|
<div class="attr-value">{{ item.view }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="attr">
|
||||||
|
<div class="attr-name">实用</div>
|
||||||
|
<div class="attr-value">{{ item.practical }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="attr">
|
||||||
|
<div class="attr-name">坚固</div>
|
||||||
|
<div class="attr-value">{{ item.hard }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="attr">
|
||||||
|
<div class="attr-name">风水</div>
|
||||||
|
<div class="attr-value">{{ item.geomantic }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="attr">
|
||||||
|
<div class="attr-name">趣味</div>
|
||||||
|
<div class="attr-value">{{ item.interesting }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="footer">
|
||||||
|
建筑适配:{{ item.architecture }}
|
||||||
|
{% if item.produce %}
|
||||||
|
|制作门派:{{ item.produce }}
|
||||||
|
{% else %}
|
||||||
|
|不可制作
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Reference in New Issue
Block a user