This commit is contained in:
2026-07-29 19:14:00 +08:00
parent 1655d1ef50
commit ad379a965a
7 changed files with 70 additions and 107 deletions
+2 -2
View File
@@ -10,7 +10,7 @@ from astrbot.api import logger
from astrbot.api import AstrBotConfig
from .jx3_data import JX3Service
from .jx3api_data import JX3APIService
from .sqlite import AsyncSQLiteDB
class AsyncTask:
@@ -18,7 +18,7 @@ class AsyncTask:
基于 APScheduler 的后台异步监控任务管理类
"""
def __init__(self, context: Context, config: AstrBotConfig, jx3api: JX3Service, sqlite: AsyncSQLiteDB):
def __init__(self, context: Context, config: AstrBotConfig, jx3api: JX3APIService, sqlite: AsyncSQLiteDB):
self.context = context
self.conf = config
self.jx3fun = jx3api
+34 -76
View File
@@ -38,7 +38,7 @@ ACHIEVEMENT_CHOICES = [
ACHIEVEMENT_CHOICE_MAP = {index: (menu_id, title) for index, menu_id, title in ACHIEVEMENT_CHOICES}
class JX3Service:
class JX3APIService:
def __init__(self, config: AstrBotConfig, sqlite: AsyncSQLiteDB, cache_sqlite: Optional[AsyncSQLiteDB] = None):
# 实例化 API Client
self._api: APIClient = APIClient()
@@ -529,6 +529,39 @@ class JX3Service:
)
async def zhengyingpaimai(self, server: str, name: str, limit: int) -> Dict[str, Any]:
"""阵营拍卖"""
# 数据处理
async def processor(data: Any, return_data: Dict[str, Any]) -> None:
for item in data:
item["time"] = format_time(item["time"])
return_data["data"]["list"] = data
return await self._request_api(
path="/auction/records",
params={"server": server, "name": name, "limit": limit, "token": self.token},
processor=processor,
template="zhengyingpaimai.html"
)
async def dilujilu(self, server: str) -> Dict[str, Any]:
"""的卢拍卖"""
# 数据处理
async def processor(data: Any, return_data: Dict[str, Any]) -> None:
for item in data:
item["refreshTime"] = format_time(item["refreshTime"])
item["captureTime"] = format_time(item["captureTime"])
item["auctionTime"] = format_time(item["auctionTime"])
return_data["data"]["list"] = data
return await self._request_api(
path="/steed/records",
params={"server": server, "token": self.token},
processor=processor,
template="dilujilu.html"
)
@@ -1446,44 +1479,7 @@ class JX3Service:
async def zhengyingpaimai(self, server: str, name: str) -> Dict[str, Any]:
"""阵营拍卖"""
return_data = self._init_return_data()
# 1. 构造请求参数
params = {"server": server, "name": name, "token": self.token}
# 2. 调用基础请求
data: Optional[List[Dict[str, Any]]] = await self._base_request(
"jx3_zhengyingpaimai", "GET", params=params
)
if not data:
return_data["msg"] = "获取接口信息失败"
return return_data
# 3. 处理返回数据
try:
for item in data:
item["time"] = datetime.fromtimestamp(item["time"]).strftime("%Y-%m-%d %H:%M:%S")
return_data["data"]["list"] = data
except Exception as e:
logger.error(f"处理返回数据失败: {e}")
return_data["msg"] = "处理返回数据失败"
return return_data
# 4. 加载模板
try:
return_data["temp"] = await load_template("zhengyingpaimai.html")
except FileNotFoundError as e:
logger.error(f"加载模板失败: {e}")
return_data["msg"] = "系统错误:模板文件不存在"
return return_data
return_data["code"] = 200
return return_data
@@ -1636,45 +1632,7 @@ class JX3Service:
return return_data
async def dilujilu(self, server: str) -> Dict[str, Any]:
"""的卢记录"""
return_data = self._init_return_data()
# 1. 构造请求参数
params = {"server": server, "token": self.token}
# 2. 调用基础请求
data: Optional[List[Dict[str, Any]]] = await self._base_request(
"jx3_dilujilu", "GET", params=params
)
if not data:
return_data["msg"] = "获取接口信息失败"
return return_data
# 3. 处理返回数据
try:
for item in data:
item["refresh_time"] = datetime.fromtimestamp(item["refresh_time"]).strftime("%Y-%m-%d %H:%M:%S")
item["capture_time"] = datetime.fromtimestamp(item["capture_time"]).strftime("%Y-%m-%d %H:%M:%S")
item["auction_time"] = datetime.fromtimestamp(item["auction_time"]).strftime("%Y-%m-%d %H:%M:%S")
return_data["data"]["list"] = data
except Exception as e:
logger.error(f"数据处理时出错: {e}")
return_data["msg"] = "处理接口返回信息时出错"
return return_data
# 4. 加载模板
try:
return_data["temp"] = await load_template("dilujilu.html")
except FileNotFoundError as e:
logger.error(f"加载模板失败: {e}")
return_data["msg"] = "系统错误:模板文件不存在"
return return_data
return_data["code"] = 200
return return_data
+9 -9
View File
@@ -6,7 +6,7 @@ from astrbot.core.utils.session_waiter import (
session_waiter,
)
from .jx3_data import JX3Service
from .jx3api_data import JX3APIService
from .async_task import AsyncTask
from .bilei_data import BiLeidata
@@ -36,7 +36,7 @@ class MessageBuilder:
"18:剑侠录总览"
)
def __init__(self, server: str, jx3api: JX3Service, bilei: BiLeidata, jx3at: AsyncTask, icons: dict[str, dict[str, str]]):
def __init__(self, server: str, jx3api: JX3APIService, bilei: BiLeidata, jx3at: AsyncTask, icons: dict[str, dict[str, str]]):
self.server = server
self.jx3api = jx3api
self.bilei = bilei
@@ -411,8 +411,13 @@ class MessageBuilder:
""" 试炼排行 服务器 心法 """
return await self.T2I_image_msg(event, lambda: self.jx3api.shilianpaixing(name, server))
async def zhengyingpaimai(self, event: AstrMessageEvent,server: str , name: str = "", limit: int = 50 ):
""" 阵营拍卖 物品名称 服务器"""
return await self.T2I_image_msg(event, lambda: self.jx3api.zhengyingpaimai(server, name, limit))
async def dilujilu(self, event: AstrMessageEvent,server: str ):
""" 的卢 服务器"""
return await self.T2I_image_msg(event, lambda: self.jx3api.dilujilu(server))
async def keju(self, event: AstrMessageEvent,subject: str, limit: int = 5):
@@ -534,9 +539,6 @@ class MessageBuilder:
async def zhengyingpaimai(self, event: AstrMessageEvent,name: str = "玄晶", server: str = ""):
""" 阵营拍卖 物品名称 服务器"""
return await self.T2I_image_msg(event, lambda: self.jx3api.zhengyingpaimai( self.serverdefault(server), name))
@@ -554,9 +556,7 @@ class MessageBuilder:
return await self.plain_msg(event, lambda: self.jx3api.tongzhanyy(self.serverdefault(server)))
async def dilujilu(self, event: AstrMessageEvent,server: str = ""):
""" 的卢 服务器"""
return await self.T2I_image_msg(event, lambda: self.jx3api.dilujilu( self.serverdefault(server)))