11
This commit is contained in:
@@ -30,6 +30,23 @@
|
|||||||
"params":{
|
"params":{
|
||||||
"serverName": "眉间雪"
|
"serverName": "眉间雪"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"aijx3_jinjia":{
|
||||||
|
"url":"https://www.jianxiachaguan.cn/api2/aijx3-jxcg/game/get-gold",
|
||||||
|
"method":"POST",
|
||||||
|
"description":"获取剑网三某区服金价",
|
||||||
|
"params":{
|
||||||
|
"serverName": "眉间雪"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"aijx3_qiyu":{
|
||||||
|
"url":"https://www.jianxiachaguan.cn/api2/aijx3-jxcg/game/get-adventure-record",
|
||||||
|
"method":"POST",
|
||||||
|
"description":"获取剑网三某区服奇遇触发记录",
|
||||||
|
"params":{
|
||||||
|
"adventureName": "阴阳两界",
|
||||||
|
"serverName": "眉间雪"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+83
-2
@@ -1,8 +1,9 @@
|
|||||||
|
from datetime import datetime
|
||||||
|
|
||||||
from astrbot.api import logger
|
from astrbot.api import logger
|
||||||
from astrbot.api.event import filter, AstrMessageEvent, MessageEventResult
|
|
||||||
|
|
||||||
from .api_data import APIClient
|
from .api_data import APIClient
|
||||||
|
from .load_template import load_template
|
||||||
|
|
||||||
class JX3Function:
|
class JX3Function:
|
||||||
def __init__(self, api_config):
|
def __init__(self, api_config):
|
||||||
@@ -118,4 +119,84 @@ class JX3Function:
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"处理数据时出错: {e}")
|
logger.error(f"处理数据时出错: {e}")
|
||||||
return_data["msg"] = "处理接口返回信息时出错"
|
return_data["msg"] = "处理接口返回信息时出错"
|
||||||
|
return return_data
|
||||||
|
|
||||||
|
|
||||||
|
async def jinjia(self, server: str = "眉间雪"):
|
||||||
|
return_data = {
|
||||||
|
"code": 0,
|
||||||
|
"msg": "功能函数未执行",
|
||||||
|
"data": {}
|
||||||
|
}
|
||||||
|
#在配置文件中获取接口配置
|
||||||
|
api_config = self.__api_config["aijx3_jinjia"]
|
||||||
|
#更新参数
|
||||||
|
api_config["params"]["serverName"] = server
|
||||||
|
# 获取数据
|
||||||
|
data = await self.__api.post(api_config["url"],api_config["params"],"data")
|
||||||
|
if not data:
|
||||||
|
return_data["msg"] = "获取接口信息失败"
|
||||||
|
return return_data
|
||||||
|
# 加载模板
|
||||||
|
try:
|
||||||
|
return_data["temp"] = load_template("jinjia.html")
|
||||||
|
except FileNotFoundError as e:
|
||||||
|
logger.error(f"加载模板失败: {e}")
|
||||||
|
return_data["msg"] = "系统错误:模板文件不存在"
|
||||||
|
return return_data
|
||||||
|
# 准备模板渲染数据
|
||||||
|
try:
|
||||||
|
return_data["data"] = {
|
||||||
|
"items": data,
|
||||||
|
"server": api_config["params"]["serverName"],
|
||||||
|
"update_time": datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||||
|
}
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"处理数据时出错: {e}")
|
||||||
|
return_data["msg"] = "系统错误:模板渲染数据准备失败"
|
||||||
|
return return_data
|
||||||
|
return_data["code"] = 200
|
||||||
|
return return_data
|
||||||
|
|
||||||
|
|
||||||
|
async def qiyu(self, adventureName: str = "阴阳两界", serverName: str = "眉间雪"):
|
||||||
|
return_data = {
|
||||||
|
"code": 0,
|
||||||
|
"msg": "功能函数未执行",
|
||||||
|
"data": {}
|
||||||
|
}
|
||||||
|
#在配置文件中获取接口配置
|
||||||
|
api_config = self.__api_config["aijx3_qiyu"]
|
||||||
|
#更新参数
|
||||||
|
api_config["params"]["adventureName"] = adventureName
|
||||||
|
api_config["params"]["serverName"] = serverName
|
||||||
|
# 获取数据
|
||||||
|
data = await self.__api.post(api_config["url"],api_config["params"],"data")
|
||||||
|
if not data:
|
||||||
|
return_data["msg"] = "获取接口信息失败"
|
||||||
|
return return_data
|
||||||
|
# 格式化时间
|
||||||
|
for item in data:
|
||||||
|
if "time" in item:
|
||||||
|
item["time"] = datetime.fromtimestamp(item["time"]/1000).strftime("%Y-%m-%d %H:%M:%S")
|
||||||
|
# 加载模板
|
||||||
|
try:
|
||||||
|
return_data["temp"] = load_template("qiyuliebiao.html")
|
||||||
|
except FileNotFoundError as e:
|
||||||
|
logger.error(f"加载模板失败: {e}")
|
||||||
|
return_data["msg"] = "系统错误:模板文件不存在"
|
||||||
|
return return_data
|
||||||
|
# 准备模板渲染数据
|
||||||
|
try:
|
||||||
|
return_data["data"] = {
|
||||||
|
"items": data,
|
||||||
|
"server": serverName,
|
||||||
|
"update_time": datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||||
|
,"qiyuname": adventureName
|
||||||
|
}
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"处理数据时出错: {e}")
|
||||||
|
return_data["msg"] = "系统错误:模板渲染数据准备失败"
|
||||||
|
return return_data
|
||||||
|
return_data["code"] = 200
|
||||||
return return_data
|
return return_data
|
||||||
@@ -9,7 +9,6 @@ from astrbot.api import AstrBotConfig
|
|||||||
|
|
||||||
from .core.load_template import load_template
|
from .core.load_template import load_template
|
||||||
from .core.jx3_data import jx3_data_jiaoyihang,jx3_data_wujia
|
from .core.jx3_data import jx3_data_jiaoyihang,jx3_data_wujia
|
||||||
from .core.api_data import APIClient,api_data_get, api_data_post
|
|
||||||
from .core.sql_data import sql_data_searchdata,sql_data_select
|
from .core.sql_data import sql_data_searchdata,sql_data_select
|
||||||
from .core.jx3_Function import JX3Function
|
from .core.jx3_Function import JX3Function
|
||||||
|
|
||||||
@@ -105,6 +104,38 @@ class Jx3ApiPlugin(Star):
|
|||||||
yield event.plain_result("猪脑过载,请稍后再试")
|
yield event.plain_result("猪脑过载,请稍后再试")
|
||||||
|
|
||||||
|
|
||||||
|
@jx3.command("金价")
|
||||||
|
async def jx3_jinjia(self, event: AstrMessageEvent,server: str = "眉间雪"):
|
||||||
|
"""剑三 金价 服务器"""
|
||||||
|
try:
|
||||||
|
data= await self.jx3fun.jinjia(server)
|
||||||
|
if data["code"] == 200:
|
||||||
|
url = await self.html_render(data["temp"], data["data"], options={})
|
||||||
|
yield event.image_result(url)
|
||||||
|
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_qiyu(self, event: AstrMessageEvent,adventureName: str = "阴阳两界", serverName: str = "眉间雪"):
|
||||||
|
"""剑三 奇遇 奇遇名称 服务器"""
|
||||||
|
try:
|
||||||
|
data= await self.jx3fun.qiyu(adventureName,serverName)
|
||||||
|
if data["code"] == 200:
|
||||||
|
url = await self.html_render(data["temp"], data["data"], options={})
|
||||||
|
yield event.image_result(url)
|
||||||
|
else:
|
||||||
|
yield event.plain_result(data["msg"])
|
||||||
|
return
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"功能函数执行错误: {e}")
|
||||||
|
yield event.plain_result("猪脑过载,请稍后再试")
|
||||||
|
|
||||||
|
|
||||||
@filter.command("剑三交易行")
|
@filter.command("剑三交易行")
|
||||||
async def jx3_data_jiaoyihang(self, event: AstrMessageEvent):
|
async def jx3_data_jiaoyihang(self, event: AstrMessageEvent):
|
||||||
"""剑三交易行 物品名称 服务器"""
|
"""剑三交易行 物品名称 服务器"""
|
||||||
@@ -161,116 +192,6 @@ class Jx3ApiPlugin(Star):
|
|||||||
yield event.plain_result("查询交易行数据时出错,请稍后再试")
|
yield event.plain_result("查询交易行数据时出错,请稍后再试")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@filter.command("剑三金价")
|
|
||||||
async def jx3_jinjia(self, event: AstrMessageEvent):
|
|
||||||
"""剑三金价 服务器"""
|
|
||||||
# 接口URL
|
|
||||||
custom_url = "https://www.jianxiachaguan.cn/api2/aijx3-jxcg/game/get-gold"
|
|
||||||
# 接口参数
|
|
||||||
params = {
|
|
||||||
"serverName": "眉间雪" # 默认服务器
|
|
||||||
}
|
|
||||||
|
|
||||||
# 获取消息内容
|
|
||||||
message_str = event.message_str.strip()
|
|
||||||
parts = message_str.split()
|
|
||||||
# 解析消息内容
|
|
||||||
if len(parts) > 1:
|
|
||||||
params["serverName"] = parts[1] # 服务器
|
|
||||||
|
|
||||||
# 获取数据
|
|
||||||
data = api_data_post(custom_url,params,"data")
|
|
||||||
|
|
||||||
if not data:
|
|
||||||
yield event.plain_result("获取获取接口信息失败,请稍后再试")
|
|
||||||
return
|
|
||||||
|
|
||||||
# 处理返回数据
|
|
||||||
try:
|
|
||||||
# 加载模板
|
|
||||||
try:
|
|
||||||
template_content = load_template("jinjia.html")
|
|
||||||
except FileNotFoundError as e:
|
|
||||||
logger.error(f"加载模板失败: {e}")
|
|
||||||
yield event.plain_result("系统错误:模板文件不存在")
|
|
||||||
return
|
|
||||||
# 准备模板渲染数据
|
|
||||||
render_data = {
|
|
||||||
"items": data,
|
|
||||||
"server": params["serverName"],
|
|
||||||
"update_time": datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
|
||||||
}
|
|
||||||
|
|
||||||
url = await self.html_render(template_content, render_data, options={})
|
|
||||||
yield event.image_result(url)
|
|
||||||
|
|
||||||
except Exception as e:
|
|
||||||
logger.error(f"处理数据时出错: {e}")
|
|
||||||
yield event.plain_result("处理接口返回信息时出错")
|
|
||||||
|
|
||||||
|
|
||||||
@filter.command("剑三奇遇")
|
|
||||||
async def jx3_qiyu(self, event: AstrMessageEvent):
|
|
||||||
"""剑三奇遇 奇遇名称 服务器"""
|
|
||||||
# 接口URL
|
|
||||||
custom_url = "https://www.jianxiachaguan.cn/api2/aijx3-jxcg/game/get-adventure-record"
|
|
||||||
# 接口参数
|
|
||||||
params = {
|
|
||||||
"adventureName": "阴阳两界", # 默奇遇
|
|
||||||
"serverName": "眉间雪" # 默认服务器
|
|
||||||
}
|
|
||||||
|
|
||||||
# 获取消息内容
|
|
||||||
message_str = event.message_str.strip()
|
|
||||||
parts = message_str.split()
|
|
||||||
# 解析消息内容
|
|
||||||
if len(parts) > 1:
|
|
||||||
params["adventureName"] = parts[1] # 奇遇名称
|
|
||||||
if len(parts) > 2:
|
|
||||||
params["serverName"] = parts[2] # 第二个参数为服务器
|
|
||||||
|
|
||||||
# 获取数据
|
|
||||||
data = api_data_post(custom_url,params,"data")
|
|
||||||
|
|
||||||
if not data:
|
|
||||||
yield event.plain_result("获取获取接口信息失败,请稍后再试")
|
|
||||||
return
|
|
||||||
|
|
||||||
#数据处理
|
|
||||||
for item in data:
|
|
||||||
# 格式化时间
|
|
||||||
if "time" in item:
|
|
||||||
dt = datetime.fromtimestamp(item["time"]/1000)
|
|
||||||
item["time"] = dt.strftime("%Y-%m-%d %H:%M:%S")
|
|
||||||
|
|
||||||
# 传入模板渲染
|
|
||||||
try:
|
|
||||||
# 加载模板
|
|
||||||
try:
|
|
||||||
template_content = load_template("qiyuliebiao.html")
|
|
||||||
except FileNotFoundError as e:
|
|
||||||
logger.error(f"加载模板失败: {e}")
|
|
||||||
yield event.plain_result("系统错误:模板文件不存在")
|
|
||||||
return
|
|
||||||
# 准备模板渲染数据
|
|
||||||
render_data = {
|
|
||||||
"items": data,
|
|
||||||
"server": params["serverName"],
|
|
||||||
"update_time": datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
|
||||||
,"qiyuname": params["adventureName"]
|
|
||||||
}
|
|
||||||
|
|
||||||
url = await self.html_render(template_content, render_data, options={})
|
|
||||||
yield event.image_result(url)
|
|
||||||
|
|
||||||
except Exception as e:
|
|
||||||
logger.error(f"处理数据时出错: {e}")
|
|
||||||
yield event.plain_result("处理接口返回信息时出错")
|
|
||||||
|
|
||||||
|
|
||||||
@filter.command("剑三外观数据同步")
|
@filter.command("剑三外观数据同步")
|
||||||
async def jx3_SearchData(self, event: AstrMessageEvent):
|
async def jx3_SearchData(self, event: AstrMessageEvent):
|
||||||
"""剑三外观数据同步"""
|
"""剑三外观数据同步"""
|
||||||
|
|||||||
Reference in New Issue
Block a user