增加奇遇攻略

This commit is contained in:
2026-01-20 12:38:52 +08:00
parent cf86459da0
commit 26c9fca6e1
4 changed files with 91 additions and 5 deletions
+47
View File
@@ -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
@@ -1022,4 +1023,50 @@ class JX3Service:
return_data["data"] = result_msg
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