115 lines
4.4 KiB
Python
115 lines
4.4 KiB
Python
from datetime import datetime
|
|
import base64
|
|
from astrbot.api import logger
|
|
|
|
from .class_reqsest import APIClient
|
|
from .cless_mysql import AsyncMySQL
|
|
from .function_basic import load_template,extract_field,flatten_field,extract_fields,gold_to_string,plot_line_chart_base64
|
|
|
|
class WZRYFunction:
|
|
def __init__(self, api_config,db: AsyncMySQL ):
|
|
self.__api = APIClient()
|
|
self.__db = db
|
|
self.__api_config = api_config
|
|
|
|
async def zhanji(self,id: str ,option: str):
|
|
"""
|
|
战绩查询
|
|
"""
|
|
return_data = {
|
|
"code": 0,
|
|
"msg": "功能函数未执行",
|
|
"data": {}
|
|
}
|
|
#在配置文件中获取接口配置
|
|
api_config = self.__api_config["wzry_zhanji"]
|
|
#更新参数
|
|
api_config["params"]["id"] = id
|
|
api_config["params"]["option"] = option
|
|
fields = ["gametime","killcnt","deadcnt","assistcnt","gameresult","mvpcnt","losemvp","mapName",
|
|
"oldMasterMatchScore","newMasterMatchScore","usedTime","winNum","failNum","roleJobName","stars","desc",
|
|
"gradeGame","heroIcon"]
|
|
# 处理返回数据
|
|
try:
|
|
# 获取数据
|
|
data = await self.__api.get(api_config["url"],api_config["params"],"data")
|
|
if not data:
|
|
return_data["msg"] = "获取接口信息失败"
|
|
return return_data
|
|
result = extract_fields(data["list"], fields)
|
|
result = result[:15]
|
|
# 数据处理
|
|
for m in result:
|
|
minutes = m["usedTime"] // 60
|
|
seconds = m["usedTime"] % 60
|
|
m["time_str"] = f"{minutes}:{seconds:02d}"
|
|
# 可选:提前转义 gameresult
|
|
if m["gameresult"] == 1:
|
|
m["gameresult_label"] = "胜利"
|
|
m["gameresult_bg"] = "#e6fbf1"
|
|
m["gameresult_color"] = "#056a3a"
|
|
elif m["gameresult"] == 2:
|
|
m["gameresult_label"] = "失败"
|
|
m["gameresult_bg"] = "#fff0f0"
|
|
m["gameresult_color"] = "#9c1f1f"
|
|
else:
|
|
m["gameresult_label"] = "平局"
|
|
m["gameresult_bg"] = "#eee"
|
|
m["gameresult_color"] = "#555"
|
|
m["MVP"] = "混子"
|
|
if m["mvpcnt"] ==1:
|
|
m["MVP"] = "胜方MVP"
|
|
if m["mvpcnt"] ==1:
|
|
m["MVP"] = "败方MVP"
|
|
|
|
return_data["data"] = result
|
|
|
|
except Exception as e:
|
|
logger.error(f"处理数据时出错: {e}")
|
|
return_data["msg"] = "处理接口返回信息时出错"
|
|
# 加载模板
|
|
try:
|
|
return_data["temp"] = load_template("wangzhezhanji.html")
|
|
except FileNotFoundError as e:
|
|
logger.error(f"加载模板失败: {e}")
|
|
return_data["msg"] = "系统错误:模板文件不存在"
|
|
return return_data
|
|
return_data["code"] = 200
|
|
return return_data
|
|
|
|
async def ziliao(self,id: str):
|
|
"""
|
|
资料查询
|
|
"""
|
|
return_data = {
|
|
"code": 0,
|
|
"msg": "功能函数未执行",
|
|
"data": {}
|
|
}
|
|
#在配置文件中获取接口配置
|
|
api_config = self.__api_config["wzry_ziliao"]
|
|
#更新参数
|
|
api_config["params"]["id"] = id
|
|
# 处理返回数据
|
|
try:
|
|
# 获取数据
|
|
data = await self.__api.get(api_config["url"],api_config["params"])
|
|
if not data:
|
|
return_data["msg"] = "获取接口信息失败"
|
|
return return_data
|
|
# 数据处理
|
|
return_data["data"]["img_base64"] = base64.b64encode(data).decode('utf-8')
|
|
|
|
except Exception as e:
|
|
logger.error(f"处理数据时出错: {e}")
|
|
return_data["msg"] = "处理接口返回信息时出错"
|
|
# 加载模板
|
|
try:
|
|
return_data["temp"] = load_template("temp_test.html")
|
|
except FileNotFoundError as e:
|
|
logger.error(f"加载模板失败: {e}")
|
|
return_data["msg"] = "系统错误:模板文件不存在"
|
|
return return_data
|
|
return_data["code"] = 200
|
|
return return_data
|