diff --git a/core/jx3_service.py b/core/jx3_service.py index 689706c..b560c90 100644 --- a/core/jx3_service.py +++ b/core/jx3_service.py @@ -701,9 +701,6 @@ class JX3Service: data["showAvatar"] = "" logger.info("名片获取失败") - # 3. 处理返回数据 (直接提取图片 URL) - - # 4. 加载模板 try: return_data["temp"] = load_template("zhanji.html") @@ -712,8 +709,60 @@ class JX3Service: return_data["msg"] = "系统错误:模板文件不存在" return return_data - return_data["data"] = data return_data["code"] = 200 return return_data + + + async def juesheqiyu(self, name: 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, "name": name, "token": token} + + # 2. 调用基础请求 + data: Optional[Dict[str, Any]] = await self._base_request( + "jx3_qiyu", "GET", params=params + ) + + if not data: + return_data["msg"] = "未找到改角色奇遇信息" + return return_data + + # 3. 处理返回数据 + try: + return_data["data"]["ptqy"] = [] + return_data["data"]["jsqy"] = [] + return_data["data"]["cwqy"] = [] + + for item in data: + item["time"] = datetime.fromtimestamp(item["time"]).strftime("%Y-%m-%d %H:%M:%S") + if item["level"] == 1: + return_data["data"]["ptqy"].append(item) + if item["level"] == 2: + return_data["data"]["jsqy"].append(item) + if item["level"] == 3: + return_data["data"]["cwqy"].append(item) + except Exception as e: + logger.error(f"处理返回数据失败: {e}") + return_data["msg"] = "处理返回数据失败" + + # 4. 加载模板 + try: + return_data["temp"] = load_template("juesheqiyu.html") + except FileNotFoundError as e: + logger.error(f"加载模板失败: {e}") + return_data["msg"] = "系统错误:模板文件不存在" + return return_data + + return_data["code"] = 200 + + return return_data diff --git a/data/api_config.json b/data/api_config.json index a258fc1..d7d5b4b 100644 --- a/data/api_config.json +++ b/data/api_config.json @@ -228,5 +228,15 @@ "ticket": "a7fd656a52d747d7830cfa6d686e6030:qsc20001102:kingsoft::sVpKi7nFKzFlbTwtBMTg2w==", "token":"" } + }, + "jx3_qiyu":{ + "url":"https://www.jx3api.com/data/luck/adventure", + "method":"GET", + "description":"此接口用于查询指定角色的奇遇触发记录,包括奇遇事件、状态及触发时间。注意,数据可能存在遗漏", + "params":{ + "server": "梦江南", + "name": "飞翔大野猪", + "token":"" + } } } \ No newline at end of file diff --git a/main.py b/main.py index 2cd67ea..9d06065 100644 --- a/main.py +++ b/main.py @@ -212,7 +212,7 @@ class Jx3ApiPlugin(Star): @jx3.command("区服奇遇") - async def jx3_qiyu(self, event: AstrMessageEvent,adventureName: str = "阴阳两界", server: str = None): + async def jx3_qufuqiyu(self, event: AstrMessageEvent,adventureName: str = "阴阳两界", server: str = None): """剑三 区服奇遇 奇遇名称 服务器""" try: data= await self.jx3fun.qiyu(adventureName,await self.serverdefault(server)) @@ -388,6 +388,23 @@ class Jx3ApiPlugin(Star): yield event.plain_result("猪脑过载,请稍后再试") + @jx3.command("奇遇") + async def jx3_qiyu(self, event: AstrMessageEvent,name: str = "飞翔大野猪", server: str = None): + """剑三 奇遇 角色名称 服务器""" + try: + data= await self.jx3fun.juesheqiyu(name,await self.serverdefault(server)) + logger.info(f"数据打印: {data}") + 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): """可选择实现异步的插件销毁方法,当插件被卸载/停用时会调用。""" # 关闭数据库连接 diff --git a/templates/juesheqiyu.html b/templates/juesheqiyu.html new file mode 100644 index 0000000..1cc5af0 --- /dev/null +++ b/templates/juesheqiyu.html @@ -0,0 +1,145 @@ + + + + + 角色奇遇一览 + + + + + +
+
+ 普通奇遇({{ ptqy|length if ptqy else 0 }}) +
+ {% if ptqy %} +
+ {% for item in ptqy %} +
+
{{ item.event }}
+
{{ item.time }}
+
+ {% endfor %} +
+ {% else %} +
暂无普通奇遇
+ {% endif %} +
+ + +
+
+ 绝世奇遇({{ jsqy|length if jsqy else 0 }}) +
+ {% if jsqy %} +
+ {% for item in jsqy %} +
+
{{ item.event }}
+
{{ item.time }}
+
+ {% endfor %} +
+ {% else %} +
暂无绝世奇遇
+ {% endif %} +
+ + +
+
+ 宠物奇遇({{ cwqy|length if cwqy else 0 }}) +
+ {% if cwqy %} +
+ {% for item in cwqy %} +
+
{{ item.event }}
+
{{ item.time }}
+
+ {% endfor %} +
+ {% else %} +
暂无宠物奇遇
+ {% endif %} +
+ + + diff --git a/templates/temp_test.html b/templates/temp_test.html index efcf5d6..1cc5af0 100644 --- a/templates/temp_test.html +++ b/templates/temp_test.html @@ -1,249 +1,145 @@ - -剑网三 3v3 战绩面板 + + 角色奇遇一览 + + @media (max-width: 600px) { + .card-container { + grid-template-columns: repeat(1, 1fr); + } + } + - -
- -
-
-
{{ roleName }}
-
- {{ serverName }} | {{ forceName }} | {{ campName }} | {{ tongName }} + +
+
+ 普通奇遇({{ ptqy|length if ptqy else 0 }}) +
+ {% if ptqy %} +
+ {% for item in ptqy %} +
+
{{ item.event }}
+
{{ item.time }}
+ {% endfor %}
-
- 角色ID:{{ roleId }} -
+ {% else %} +
暂无普通奇遇
+ {% endif %}
- -
- - -
- avatar + +
+
+ 绝世奇遇({{ jsqy|length if jsqy else 0 }})
- - -
-
-
名剑积分
-
{{ performance['3v3'].mmr }}
-
- -
-
名剑段位
-
{{ performance['3v3'].grade }}
-
- -
-
胜率
-
{{ performance['3v3'].winRate }}%
-
- -
-
总场数
-
{{ performance['3v3'].totalCount }}
-
- -
-
MVP次数
-
{{ performance['3v3'].mvpCount }}
+ {% if jsqy %} +
+ {% for item in jsqy %} +
+
{{ item.event }}
+
{{ item.time }}
+ {% endfor %}
- + {% else %} +
暂无绝世奇遇
+ {% endif %}
- - - - - - - - - - - - - + +
+
+ 宠物奇遇({{ cwqy|length if cwqy else 0 }}) +
+ {% if cwqy %} +
+ {% for item in cwqy %} +
+
{{ item.event }}
+
{{ item.time }}
+
+ {% endfor %} +
+ {% else %} +
暂无宠物奇遇
+ {% endif %} +
- - {% for m in history %} - - - - - - - - - - {% endfor %} - -
对战时长心法胜负积分变化最终积分平均段位MVP
{{ m.endTime - m.startTime }}{{ m.kungfu }}{{ '胜' if m.won else '负' }} - {{ m.mmr }} - {{ m.totalMmr }}{{ m.avgGrade }} - {{ '是' if m.mvp else '-' }} -
- -