🐛 fix bug

This commit is contained in:
HibiKier 2023-03-29 18:47:47 +08:00
parent 198386e500
commit 117eb86e8c
3 changed files with 11 additions and 7 deletions

View File

@ -24,7 +24,7 @@ async def generate_skin(skin: BuffSkin, update_count: int) -> Optional[BuildImag
Optional[BuildImage]: 图片
"""
name = skin.name + "-" + skin.skin_name + "-" + skin.abrasion
file_path = BASE_PATH / cn2py(skin.case_name) / f"{cn2py(name)}.jpg"
file_path = BASE_PATH / cn2py(skin.case_name.split(",")[0]) / f"{cn2py(name)}.jpg"
if not file_path.exists():
logger.warning(f"皮肤图片: {name} 不存在", "查看武器箱")
return None

View File

@ -58,8 +58,6 @@ def add_count(user: OpenCasesUser, skin: BuffSkin, case_price: float):
user.knife_st_count += 1
else:
user.knife_count += 1
user.today_open_total += 1
user.total_count += 1
user.make_money += skin.sell_min_price
user.spend_money += 17 + case_price
@ -119,6 +117,9 @@ async def open_case(user_qq: int, group_id: int, case_name: str) -> Union[str, M
case_price = 0
if case_skin := await BuffSkin.get_or_none(case_name=case_name, color="CASE"):
case_price = case_skin.sell_min_price
user.today_open_total += 1
user.total_count += 1
await user.save(update_fields=["today_open_total", "total_count"])
add_count(user, skin, case_price)
ridicule_result = random.choice(RESULT_MESSAGE[skin.color])
price_result = skin.sell_min_price
@ -205,6 +206,9 @@ async def open_multiple_case(
total_price = 0
log_list = []
now = datetime.now()
user.today_open_total += num
user.total_count += num
await user.save(update_fields=["today_open_total", "total_count"])
case_price = 0
if case_skin := await BuffSkin.get_or_none(case_name=case_name, color="CASE"):
case_price = case_skin.sell_min_price

View File

@ -50,7 +50,7 @@ class CaseManager:
)
async def update_skin_data(name: str, is_update_case_name: bool) -> str:
async def update_skin_data(name: str, is_update_case_name: bool = False) -> str:
"""更新箱子内皮肤数据
Args:
@ -353,12 +353,12 @@ async def build_case_image(case_name: str) -> Union[BuildImage, str]:
background_img = BuildImage(0, 0, background=CASE_BACKGROUND / background)
if case_name:
log_list = (
await BuffSkinLog.filter(case_name=case_name)
await BuffSkinLog.filter(case_name__contains=case_name)
.annotate(count=Count("id"))
.group_by("skin_name")
.values_list("skin_name", "count")
)
skin_list_ = await BuffSkin.filter(case_name=case_name).all()
skin_list_ = await BuffSkin.filter(case_name__contains=case_name).all()
skin2count = {item[0]: item[1] for item in log_list}
case = None
skin_list: List[BuffSkin] = []
@ -373,7 +373,7 @@ async def build_case_image(case_name: str) -> Union[BuildImage, str]:
exists_name.append(name)
generate_img = {}
for skin in skin_list:
skin_img = await generate_skin(skin, skin2count[skin.skin_name])
skin_img = await generate_skin(skin, skin2count.get(skin.skin_name, 0))
if skin_img:
if not generate_img.get(skin.color):
generate_img[skin.color] = []