11
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
|
|
||||||
# pyright: reportArgumentType=false
|
# pyright: reportArgumentType=false
|
||||||
|
# pyright: reportAttributeAccessIssue=false
|
||||||
|
# pyright: reportIndexIssue=false
|
||||||
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Dict, Any, Optional, List, Union
|
from typing import Dict, Any, Optional, List, Union
|
||||||
@@ -206,6 +208,42 @@ class JX3Service:
|
|||||||
return_data["code"] = 200
|
return_data["code"] = 200
|
||||||
|
|
||||||
return return_data
|
return return_data
|
||||||
|
|
||||||
|
|
||||||
|
async def xingxiashijian(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_xingxiashijian", "GET", params=params
|
||||||
|
)
|
||||||
|
if not data:
|
||||||
|
return_data["msg"] = "获取接口信息失败"
|
||||||
|
return return_data
|
||||||
|
|
||||||
|
# 3. 处理返回数据
|
||||||
|
try:
|
||||||
|
return_data["data"]["items"] = data
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"richang 数据处理时出错: {e}")
|
||||||
|
return_data["msg"] = "处理接口返回信息时出错"
|
||||||
|
|
||||||
|
# 加载模板
|
||||||
|
try:
|
||||||
|
return_data["temp"] = load_template("xingxiashijian.html")
|
||||||
|
except FileNotFoundError as e:
|
||||||
|
logger.error(f"加载模板失败: {e}")
|
||||||
|
return_data["msg"] = "系统错误:模板文件不存在"
|
||||||
|
|
||||||
|
|
||||||
|
return_data["code"] = 200
|
||||||
|
|
||||||
|
return return_data
|
||||||
|
|
||||||
|
|
||||||
async def shapan(self, server: str ) -> Dict[str, Any]:
|
async def shapan(self, server: str ) -> Dict[str, Any]:
|
||||||
"""区服沙盘"""
|
"""区服沙盘"""
|
||||||
|
|||||||
@@ -211,5 +211,13 @@
|
|||||||
"params":{
|
"params":{
|
||||||
"num": "30"
|
"num": "30"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"jx3_xingxiashijian":{
|
||||||
|
"url":"https://www.jx3api.com/data/active/celebs",
|
||||||
|
"method":"GET",
|
||||||
|
"description":"查询当前时间的楚天社或云从社的进度。",
|
||||||
|
"params":{
|
||||||
|
"name": "穹野卫"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -149,12 +149,12 @@ class Jx3ApiPlugin(Star):
|
|||||||
logger.error(f"功能函数执行错误: {e}")
|
logger.error(f"功能函数执行错误: {e}")
|
||||||
yield event.plain_result("猪脑过载,请稍后再试")
|
yield event.plain_result("猪脑过载,请稍后再试")
|
||||||
|
|
||||||
|
|
||||||
@jx3.command("日常预测")
|
@jx3.command("日常预测")
|
||||||
async def jx3_richangyuche(self, event: AstrMessageEvent):
|
async def jx3_richangyuche(self, event: AstrMessageEvent):
|
||||||
"""剑三 日常预测 服务器 """
|
"""剑三 日常预测 服务器 """
|
||||||
try:
|
try:
|
||||||
data= await self.jx3fun.richangyuche()
|
data= await self.jx3fun.richangyuche()
|
||||||
logger.info(data)
|
|
||||||
if data["code"] == 200:
|
if data["code"] == 200:
|
||||||
url = await self.html_render(data["temp"], data["data"], options={})
|
url = await self.html_render(data["temp"], data["data"], options={})
|
||||||
yield event.image_result(url)
|
yield event.image_result(url)
|
||||||
@@ -165,6 +165,23 @@ class Jx3ApiPlugin(Star):
|
|||||||
logger.error(f"功能函数执行错误: {e}")
|
logger.error(f"功能函数执行错误: {e}")
|
||||||
yield event.plain_result("猪脑过载,请稍后再试")
|
yield event.plain_result("猪脑过载,请稍后再试")
|
||||||
|
|
||||||
|
|
||||||
|
@jx3.command("名望")
|
||||||
|
async def jx3_xingxiashijian(self, event: AstrMessageEvent,name: str = "穹野卫"):
|
||||||
|
"""剑三 名望"""
|
||||||
|
try:
|
||||||
|
data= await self.jx3fun.xingxiashijian(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("猪脑过载,请稍后再试")
|
||||||
|
|
||||||
|
|
||||||
@jx3.command("开服")
|
@jx3.command("开服")
|
||||||
async def jx3_kaifu(self, event: AstrMessageEvent,server: str = ""):
|
async def jx3_kaifu(self, event: AstrMessageEvent,server: str = ""):
|
||||||
"""剑三 开服 服务器"""
|
"""剑三 开服 服务器"""
|
||||||
|
|||||||
@@ -0,0 +1,118 @@
|
|||||||
|
<!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: 900px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 32px;
|
||||||
|
margin-bottom: 25px;
|
||||||
|
color: #222;
|
||||||
|
font-weight: 800;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ====== 列表 ====== */
|
||||||
|
.list {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 卡片 */
|
||||||
|
.card {
|
||||||
|
background: #ffffff;
|
||||||
|
border-radius: 12px;
|
||||||
|
padding: 16px 18px;
|
||||||
|
box-shadow: 0 4px 14px rgba(0,0,0,0.06);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 时间 */
|
||||||
|
.time {
|
||||||
|
width: 70px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 26px;
|
||||||
|
font-weight: 700;
|
||||||
|
color: #2563eb;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 内容 */
|
||||||
|
.content {
|
||||||
|
flex: 1;
|
||||||
|
padding: 0 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stage {
|
||||||
|
font-size: 22px;
|
||||||
|
font-weight: 700;
|
||||||
|
margin-bottom: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.meta {
|
||||||
|
font-size: 18px;
|
||||||
|
color: #666;
|
||||||
|
margin-bottom: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.desc {
|
||||||
|
font-size: 20px;
|
||||||
|
color: #444;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 图标 */
|
||||||
|
.icon {
|
||||||
|
width: 36px;
|
||||||
|
height: 36px;
|
||||||
|
border-radius: 8px;
|
||||||
|
background: #e5e7eb;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: 700;
|
||||||
|
color: #374151;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<h1>名望事件</h1>
|
||||||
|
|
||||||
|
<div class="list">
|
||||||
|
{% for m in items %}
|
||||||
|
<div class="card">
|
||||||
|
<div class="time">{{ m.time }}</div>
|
||||||
|
|
||||||
|
<div class="content">
|
||||||
|
<div class="stage">{{ m.stage }}</div>
|
||||||
|
<div class="meta">{{ m.map }} · {{ m.site }}</div>
|
||||||
|
<div class="desc">{{ m.desc }}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="icon">{{ m.icon }}</div>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Reference in New Issue
Block a user