diff --git a/README.md b/README.md index 00cba29..c32ba0b 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,9 @@ 庐园广记一百强 服务器 | 浩气神兵宝甲五十强 服务器 | 恶人神兵宝甲五十强 服务器 | 浩气爱心帮会五十强 服务器 | 恶人爱心帮会五十强 服务器 | 赛季恶人五十强 服务器 | 赛季浩气五十强 服务器 | 上周恶人五十强 服务器 | 上周浩气五十强 服务器 | 本周恶人五十强 服务器 | 本周浩气五十强 服务器 试炼排行:试炼排行 服务器 心法 +【物价交易】 +阵营拍卖:阵营拍卖 服务器 [物品] [数量] + ## 安装与依赖 diff --git a/core/async_task.py b/core/async_task.py index c4105a7..26ccaa7 100644 --- a/core/async_task.py +++ b/core/async_task.py @@ -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 diff --git a/core/jx3_data.py b/core/jx3api_data.py similarity index 97% rename from core/jx3_data.py rename to core/jx3api_data.py index f58e78d..67a6a03 100644 --- a/core/jx3_data.py +++ b/core/jx3api_data.py @@ -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 diff --git a/core/message.py b/core/message.py index db1dd5a..661864c 100644 --- a/core/message.py +++ b/core/message.py @@ -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))) + diff --git a/main.py b/main.py index cc8c57d..6e894e6 100644 --- a/main.py +++ b/main.py @@ -8,7 +8,7 @@ from astrbot.api import logger from astrbot.api import AstrBotConfig from .core.sqlite import AsyncSQLiteDB -from .core.jx3_data import JX3Service +from .core.jx3api_data import JX3APIService from .core.async_task import AsyncTask from .core.bilei_data import BiLeidata from .core.message import MessageBuilder @@ -143,7 +143,7 @@ class Jx3ApiPlugin(Star): self.plugin_sql_db = AsyncSQLiteDB(str(self.plugin_data_path)) # 剑网三功能实例化 self.bilei = BiLeidata(self.local_sql_db) - self.jx3api = JX3Service(self.conf, self.plugin_sql_db, self.local_sql_db) + self.jx3api = JX3APIService(self.conf, self.plugin_sql_db, self.local_sql_db) self.jx3at = AsyncTask(cast(Context, self.context), self.conf, self.jx3api, self.local_sql_db) self.jx3cmd = MessageBuilder(self.server, self.jx3api, self.bilei, self.jx3at, self.icons) @@ -231,6 +231,8 @@ class Jx3ApiPlugin(Star): "本周恶人五十强": self. jx3cmd.benzhouerenwushiqiang, "本周浩气五十强": self. jx3cmd.benzhouhaoqiwushiqiang, "试炼排行": self. jx3cmd.shilianpaixing, + "阵营拍卖": self. jx3cmd.zhengyingpaimai, + "的卢": self. jx3cmd.dilujilu, "科举": self. jx3cmd.keju, @@ -261,11 +263,11 @@ class Jx3ApiPlugin(Star): "扶摇": self. jx3cmd.fuyaojjiutian, "诛恶": self. jx3cmd.zhueevent, - "拍卖": self. jx3cmd.zhengyingpaimai, + "帮战记录": self. jx3cmd.bangzhanjilu, "统战": self. jx3cmd.tongzhanyy, - "的卢": self. jx3cmd.dilujilu, + "骗子": self. jx3cmd.pianzhi, "奇遇": self. jx3cmd.juesheqiyu, diff --git a/templates/dilujilu.html b/templates/dilujilu.html index 6e59051..2218e6b 100644 --- a/templates/dilujilu.html +++ b/templates/dilujilu.html @@ -94,21 +94,21 @@
{% for m in list %}