修改4
This commit is contained in:
@@ -26,6 +26,9 @@
|
|||||||
庐园广记一百强 服务器 | 浩气神兵宝甲五十强 服务器 | 恶人神兵宝甲五十强 服务器 | 浩气爱心帮会五十强 服务器 | 恶人爱心帮会五十强 服务器 |
|
庐园广记一百强 服务器 | 浩气神兵宝甲五十强 服务器 | 恶人神兵宝甲五十强 服务器 | 浩气爱心帮会五十强 服务器 | 恶人爱心帮会五十强 服务器 |
|
||||||
赛季恶人五十强 服务器 | 赛季浩气五十强 服务器 | 上周恶人五十强 服务器 | 上周浩气五十强 服务器 | 本周恶人五十强 服务器 | 本周浩气五十强 服务器
|
赛季恶人五十强 服务器 | 赛季浩气五十强 服务器 | 上周恶人五十强 服务器 | 上周浩气五十强 服务器 | 本周恶人五十强 服务器 | 本周浩气五十强 服务器
|
||||||
试炼排行:试炼排行 服务器 心法
|
试炼排行:试炼排行 服务器 心法
|
||||||
|
【物价交易】
|
||||||
|
阵营拍卖:阵营拍卖 服务器 [物品] [数量]
|
||||||
|
|
||||||
|
|
||||||
## 安装与依赖
|
## 安装与依赖
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -10,7 +10,7 @@ from astrbot.api import logger
|
|||||||
from astrbot.api import AstrBotConfig
|
from astrbot.api import AstrBotConfig
|
||||||
|
|
||||||
|
|
||||||
from .jx3_data import JX3Service
|
from .jx3api_data import JX3APIService
|
||||||
from .sqlite import AsyncSQLiteDB
|
from .sqlite import AsyncSQLiteDB
|
||||||
|
|
||||||
class AsyncTask:
|
class AsyncTask:
|
||||||
@@ -18,7 +18,7 @@ class AsyncTask:
|
|||||||
基于 APScheduler 的后台异步监控任务管理类
|
基于 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.context = context
|
||||||
self.conf = config
|
self.conf = config
|
||||||
self.jx3fun = jx3api
|
self.jx3fun = jx3api
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ ACHIEVEMENT_CHOICES = [
|
|||||||
|
|
||||||
ACHIEVEMENT_CHOICE_MAP = {index: (menu_id, title) for index, menu_id, title in 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):
|
def __init__(self, config: AstrBotConfig, sqlite: AsyncSQLiteDB, cache_sqlite: Optional[AsyncSQLiteDB] = None):
|
||||||
# 实例化 API Client
|
# 实例化 API Client
|
||||||
self._api: APIClient = APIClient()
|
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
|
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
@@ -6,7 +6,7 @@ from astrbot.core.utils.session_waiter import (
|
|||||||
session_waiter,
|
session_waiter,
|
||||||
)
|
)
|
||||||
|
|
||||||
from .jx3_data import JX3Service
|
from .jx3api_data import JX3APIService
|
||||||
from .async_task import AsyncTask
|
from .async_task import AsyncTask
|
||||||
from .bilei_data import BiLeidata
|
from .bilei_data import BiLeidata
|
||||||
|
|
||||||
@@ -36,7 +36,7 @@ class MessageBuilder:
|
|||||||
"18:剑侠录总览"
|
"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.server = server
|
||||||
self.jx3api = jx3api
|
self.jx3api = jx3api
|
||||||
self.bilei = bilei
|
self.bilei = bilei
|
||||||
@@ -411,8 +411,13 @@ class MessageBuilder:
|
|||||||
""" 试炼排行 服务器 心法 """
|
""" 试炼排行 服务器 心法 """
|
||||||
return await self.T2I_image_msg(event, lambda: self.jx3api.shilianpaixing(name, server))
|
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):
|
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)))
|
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)))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ from astrbot.api import logger
|
|||||||
from astrbot.api import AstrBotConfig
|
from astrbot.api import AstrBotConfig
|
||||||
|
|
||||||
from .core.sqlite import AsyncSQLiteDB
|
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.async_task import AsyncTask
|
||||||
from .core.bilei_data import BiLeidata
|
from .core.bilei_data import BiLeidata
|
||||||
from .core.message import MessageBuilder
|
from .core.message import MessageBuilder
|
||||||
@@ -143,7 +143,7 @@ class Jx3ApiPlugin(Star):
|
|||||||
self.plugin_sql_db = AsyncSQLiteDB(str(self.plugin_data_path))
|
self.plugin_sql_db = AsyncSQLiteDB(str(self.plugin_data_path))
|
||||||
# 剑网三功能实例化
|
# 剑网三功能实例化
|
||||||
self.bilei = BiLeidata(self.local_sql_db)
|
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.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)
|
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.benzhouerenwushiqiang,
|
||||||
"本周浩气五十强": self. jx3cmd.benzhouhaoqiwushiqiang,
|
"本周浩气五十强": self. jx3cmd.benzhouhaoqiwushiqiang,
|
||||||
"试炼排行": self. jx3cmd.shilianpaixing,
|
"试炼排行": self. jx3cmd.shilianpaixing,
|
||||||
|
"阵营拍卖": self. jx3cmd.zhengyingpaimai,
|
||||||
|
"的卢": self. jx3cmd.dilujilu,
|
||||||
|
|
||||||
|
|
||||||
"科举": self. jx3cmd.keju,
|
"科举": self. jx3cmd.keju,
|
||||||
@@ -261,11 +263,11 @@ class Jx3ApiPlugin(Star):
|
|||||||
"扶摇": self. jx3cmd.fuyaojjiutian,
|
"扶摇": self. jx3cmd.fuyaojjiutian,
|
||||||
"诛恶": self. jx3cmd.zhueevent,
|
"诛恶": self. jx3cmd.zhueevent,
|
||||||
|
|
||||||
"拍卖": self. jx3cmd.zhengyingpaimai,
|
|
||||||
|
|
||||||
"帮战记录": self. jx3cmd.bangzhanjilu,
|
"帮战记录": self. jx3cmd.bangzhanjilu,
|
||||||
"统战": self. jx3cmd.tongzhanyy,
|
"统战": self. jx3cmd.tongzhanyy,
|
||||||
"的卢": self. jx3cmd.dilujilu,
|
|
||||||
|
|
||||||
"骗子": self. jx3cmd.pianzhi,
|
"骗子": self. jx3cmd.pianzhi,
|
||||||
"奇遇": self. jx3cmd.juesheqiyu,
|
"奇遇": self. jx3cmd.juesheqiyu,
|
||||||
|
|||||||
+10
-10
@@ -94,21 +94,21 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
{% for m in list %}
|
{% for m in list %}
|
||||||
<tr
|
<tr
|
||||||
{% if m.capture_camp_name == '浩气盟' %}
|
{% if m.captureCampName == '浩气盟' %}
|
||||||
class="camp-haoqi"
|
class="camp-haoqi"
|
||||||
{% elif m.capture_camp_name == '恶人谷' %}
|
{% elif m.captureCampName == '恶人谷' %}
|
||||||
class="camp-eren"
|
class="camp-eren"
|
||||||
{% endif %}
|
{% endif %}
|
||||||
>
|
>
|
||||||
<td>{{ m.server }}</td>
|
<td>{{ m.server }}</td>
|
||||||
<td>{{ m.refresh_time }}</td>
|
<td>{{ m.refreshTime }}</td>
|
||||||
<td>{{ m.capture_time }}</td>
|
<td>{{ m.captureTime }}</td>
|
||||||
<td>{{ m.capture_role_name }}</td>
|
<td>{{ m.captureRoleName }}</td>
|
||||||
<td>{{ m.capture_camp_name }}</td>
|
<td>{{ m.captureCampName }}</td>
|
||||||
<td>{{ m.auction_time }}</td>
|
<td>{{ m.auctionTime }}</td>
|
||||||
<td>{{ m.auction_amount }}</td>
|
<td>{{ m.auctionAmount }}</td>
|
||||||
<td>{{ m.auction_role_name }}</td>
|
<td>{{ m.auctionRoleName }}</td>
|
||||||
<td>{{ m.auction_camp_name }}</td>
|
<td>{{ m.auctionCampName }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|||||||
@@ -91,17 +91,17 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
{% for m in list %}
|
{% for m in list %}
|
||||||
<tr
|
<tr
|
||||||
{% if m.camp_name == '浩气盟' %}
|
{% if m.campName == '浩气盟' %}
|
||||||
class="camp-haoqi"
|
class="camp-haoqi"
|
||||||
{% elif m.camp_name == '恶人谷' %}
|
{% elif m.campName == '恶人谷' %}
|
||||||
class="camp-eren"
|
class="camp-eren"
|
||||||
{% endif %}
|
{% endif %}
|
||||||
>
|
>
|
||||||
<td>{{ m.server }}</td>
|
<td>{{ m.server }}</td>
|
||||||
<td>{{ m.name }}</td>
|
<td>{{ m.itemName }}</td>
|
||||||
<td>{{ m.role_name }}</td>
|
<td>{{ m.roleName }}</td>
|
||||||
<td>{{ m.camp_name }}</td>
|
<td>{{ m.campName }}</td>
|
||||||
<td>{{ m.amount }}</td>
|
<td>{{ m.itemAmount }}</td>
|
||||||
<td>{{ m.time }}</td>
|
<td>{{ m.time }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|||||||
Reference in New Issue
Block a user