增加奇遇攻略
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
# pyright: reportArgumentType=false
|
||||
# pyright: reportAttributeAccessIssue=false
|
||||
# pyright: reportIndexIssue=false
|
||||
# pyright: reportOptionalMemberAccess=false
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Dict, Any, Optional, List, Union
|
||||
@@ -1023,3 +1024,49 @@ class JX3Service:
|
||||
return_data["code"] = 200
|
||||
|
||||
return return_data
|
||||
|
||||
|
||||
async def qiyugonglue(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(
|
||||
"jx3box_qiyugonglue", "GET", params=params, out_key="list"
|
||||
)
|
||||
|
||||
if not data:
|
||||
return_data["msg"] = "未找到该奇遇"
|
||||
return return_data
|
||||
|
||||
# 提取dwID
|
||||
dwID = data[0]["dwID"]
|
||||
url = f"https://node.jx3box.com/serendipity/{dwID}/achievement"
|
||||
logger.debug(f"拼接URL:{url}")
|
||||
|
||||
# 3. 获取奇遇攻略
|
||||
try:
|
||||
# 获取achievement_id
|
||||
data1 = await self._api.get(url)
|
||||
url1 = f"https://cms.jx3box.com/api/cms/wiki/post/type/achievement/source/{data1['achievement_id']}"
|
||||
logger.debug(f"拼接URL:{url1}")
|
||||
# 获取奇遇攻略
|
||||
data2 = await self._api.get(url1, out_key="data")
|
||||
except Exception as e:
|
||||
logger.exception("获取奇遇攻略数据失败")
|
||||
return_data["msg"] = "获取奇遇攻略数据失败"
|
||||
|
||||
# 4. 处理数据
|
||||
try:
|
||||
return_data["data"] = data2["post"]["title"]
|
||||
content = data2["post"]["content"]
|
||||
except Exception as e:
|
||||
logger.exception("处理返回数据失败")
|
||||
return_data["msg"] = "处理返回数据失败"
|
||||
|
||||
return_data["temp"] = content
|
||||
return_data["code"] = 200
|
||||
return return_data
|
||||
@@ -239,5 +239,16 @@
|
||||
"limit": "10",
|
||||
"token": ""
|
||||
}
|
||||
},
|
||||
"jx3box_qiyugonglue":{
|
||||
"url":"https://node.jx3box.com/serendipities",
|
||||
"method":"GET",
|
||||
"description":"魔盒根据名称查询对应奇遇dwID",
|
||||
"params":{
|
||||
"name": "阴阳",
|
||||
"per": "2",
|
||||
"client": "std",
|
||||
"page": "1"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,5 @@
|
||||
# pyright: reportOptionalMemberAccess=false
|
||||
|
||||
import json
|
||||
import shutil
|
||||
import pathlib
|
||||
@@ -258,9 +260,9 @@ class Jx3ApiPlugin(Star):
|
||||
yield event.plain_result("猪脑过载,请稍后再试")
|
||||
|
||||
|
||||
@jx3.command("区服奇遇")
|
||||
@jx3.command("奇遇统计")
|
||||
async def jx3_qufuqiyu(self, event: AstrMessageEvent,adventureName: str = "阴阳两界", server: str = ""):
|
||||
"""剑三 区服奇遇 奇遇名称 服务器"""
|
||||
"""剑三 奇遇统计 奇遇名称 服务器"""
|
||||
try:
|
||||
data= await self.jx3fun.qiyu(adventureName,self.serverdefault(server))
|
||||
if data["code"] == 200:
|
||||
@@ -274,6 +276,26 @@ class Jx3ApiPlugin(Star):
|
||||
yield event.plain_result("猪脑过载,请稍后再试")
|
||||
|
||||
|
||||
@jx3.command("奇遇攻略")
|
||||
async def jx3_qiyugonglue(self, event: AstrMessageEvent,name: str):
|
||||
"""剑三 奇遇攻略 奇遇名称"""
|
||||
try:
|
||||
data= await self.jx3fun.qiyugonglue(name)
|
||||
if data["code"] == 200:
|
||||
url = await self.html_render(data["temp"], {}, options={})
|
||||
chain = [
|
||||
Comp.Plain(f"{data['data']} \n"),
|
||||
Comp.Image.fromURL(f"{url}")
|
||||
]
|
||||
yield event.chain_result(chain)
|
||||
else:
|
||||
yield event.plain_result(data["msg"])
|
||||
return
|
||||
except Exception as e:
|
||||
logger.error(f"功能函数执行错误: {e}")
|
||||
yield event.plain_result("猪脑过载,请稍后再试")
|
||||
|
||||
|
||||
@jx3.command("金价")
|
||||
async def jx3_jinjia(self, event: AstrMessageEvent,server: str = "", limit:str = "15"):
|
||||
"""剑三 金价 服务器"""
|
||||
|
||||
@@ -194,9 +194,15 @@
|
||||
</div>
|
||||
|
||||
<div class="command">
|
||||
<div class="cmd-name">区服奇遇</div>
|
||||
<div class="cmd-name">奇遇统计</div>
|
||||
<div class="cmd-desc">查询服务器某个奇遇的触发情况</div>
|
||||
<div class="cmd-usage">剑三 区服奇遇 奇遇名称 [服务器]</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>
|
||||
|
||||
Reference in New Issue
Block a user