This commit is contained in:
qsc
2025-09-30 21:19:02 +08:00
parent d8dac64b1d
commit 8440329fbc
2 changed files with 40 additions and 4 deletions
+19 -3
View File
@@ -4,7 +4,7 @@ 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
from .function_basic import load_template, extract_field,flatten_field,extract_fields,gold_to_string
class JX3Function:
def __init__(self, api_config,db: AsyncMySQL ):
@@ -383,7 +383,7 @@ class JX3Function:
return processed
async def jiaoyihang(self,Name: str = "守缺式",server: str = "眉间雪"):
async def jiaoyihang(self,Name: str = "守缺式",server: str = "梦江南"):
return_data = {
"code": 0,
"msg": "功能函数未执行",
@@ -420,6 +420,22 @@ class JX3Function:
if not data:
return_data["msg"] = "未找到在售物品"
return return_data
return_data["data"]=data
#提取需要的字段
fieldsjyh = ["ItemId", "SampleSize", "LowestPrice", "AvgPrice", "Date"]
resultjyh = [{f: v[f] for f in fieldsjyh} for v in data.values()]
#合并表格数据
# 先建立一个字典映射,加快查找
map_result = {item["id"]: {"IconID": item["IconID"], "Name": item["Name"]} for item in result}
# 遍历 resultjyh,合并字段
for item in resultjyh:
if item["ItemId"] in map_result:
item.update(map_result[item["ItemId"]])
#处理数据
for item in resultjyh:
item["LowestPrice"] = gold_to_string(item["LowestPrice"])
item["AvgPrice"] = gold_to_string(item["AvgPrice"])
item["IconID"] = f"https://icon.jx3box.com/icon/{item['IconID']}.png"
return_data["data"]=resultjyh
return_data["code"] = 200
return return_data
+21 -1
View File
@@ -83,4 +83,24 @@ def extract_field(data_list, field_name):
Returns:
list: 提取出来的字段值列表
"""
return [item[field_name] for item in data_list if field_name in item]
return [item[field_name] for item in data_list if field_name in item]
def gold_to_string(gold_amount):
"""
将金钱数值转换为字符串表示形式
Args:
gold_amount (int): 金钱数值,单位为铜币
Returns:
str: 格式化后的金钱字符串,例如 "1金2银3铜"
"""
bricks = gold_amount // 100000000 if gold_amount else 0
gold = (gold_amount % 100000000) // 10000 if gold_amount else 0
silver = (gold_amount % 10000) // 100 if gold_amount else 0
copper = gold_amount % 100 if gold_amount else 0
gold_str = f"{bricks}{gold}{silver}{copper}" if gold_amount else "无价格"
return gold_str