From 117eb86e8c886f003f2ef3998e4cbd52ed06a1d3 Mon Sep 17 00:00:00 2001 From: HibiKier <775757368@qq.com> Date: Wed, 29 Mar 2023 18:47:47 +0800 Subject: [PATCH] :bug: fix bug --- plugins/open_cases/build_image.py | 2 +- plugins/open_cases/open_cases_c.py | 8 ++++++-- plugins/open_cases/utils.py | 8 ++++---- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/plugins/open_cases/build_image.py b/plugins/open_cases/build_image.py index 8f4c586c..4413b6ad 100644 --- a/plugins/open_cases/build_image.py +++ b/plugins/open_cases/build_image.py @@ -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 diff --git a/plugins/open_cases/open_cases_c.py b/plugins/open_cases/open_cases_c.py index d6caf162..f0e56354 100755 --- a/plugins/open_cases/open_cases_c.py +++ b/plugins/open_cases/open_cases_c.py @@ -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 diff --git a/plugins/open_cases/utils.py b/plugins/open_cases/utils.py index 8bb4b6ba..bd565275 100755 --- a/plugins/open_cases/utils.py +++ b/plugins/open_cases/utils.py @@ -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] = []