From cf8e725a1fad489eceab67d1f69354a0c9e4e454 Mon Sep 17 00:00:00 2001 From: xtaodada Date: Sat, 22 Oct 2022 01:13:10 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20=E4=BF=AE=E5=A4=8D=20gacha=5Flog?= =?UTF-8?q?=20=E6=97=A0=E6=B3=95=E5=88=86=E6=9E=90=E5=8D=95=E6=8A=BD?= =?UTF-8?q?=E4=BA=94=E6=98=9F=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- metadata/scripts/paimon_moe.py | 7 ++++--- modules/gacha_log/log.py | 10 +++++++--- plugins/genshin/gacha/gacha_log.py | 8 ++------ plugins/system/get_chat.py | 3 ++- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/metadata/scripts/paimon_moe.py b/metadata/scripts/paimon_moe.py index 69a2570..472ad46 100644 --- a/metadata/scripts/paimon_moe.py +++ b/metadata/scripts/paimon_moe.py @@ -2,13 +2,14 @@ from utils.const import PROJECT_ROOT from aiofiles import open as async_open from httpx import AsyncClient, URL +GACHA_LOG_PAIMON_MOE_PATH = PROJECT_ROOT.joinpath("metadata/data/paimon_moe_zh.json") + async def update_paimon_moe_zh(overwrite: bool = True): - path = PROJECT_ROOT.joinpath("metadata/data/paimon_moe_zh.json") - if not overwrite and path.exists(): + if not overwrite and GACHA_LOG_PAIMON_MOE_PATH.exists(): return host = URL("https://raw.fastgit.org/MadeBaruna/paimon-moe/main/src/locales/items/zh.json") client = AsyncClient() text = (await client.get(host)).text - async with async_open(path, mode="w", encoding="utf-8") as file: + async with async_open(GACHA_LOG_PAIMON_MOE_PATH, mode="w", encoding="utf-8") as file: await file.write(text) diff --git a/modules/gacha_log/log.py b/modules/gacha_log/log.py index f52f5bf..d9c7cc0 100644 --- a/modules/gacha_log/log.py +++ b/modules/gacha_log/log.py @@ -36,10 +36,14 @@ from modules.gacha_log.models import ( UIGFInfo, UIGFItem, ) +from utils.const import PROJECT_ROOT + +GACHA_LOG_PATH = PROJECT_ROOT.joinpath("data", "apihelper", "gacha_log") +GACHA_LOG_PATH.mkdir(parents=True, exist_ok=True) class GachaLog: - def __init__(self, gacha_log_path: Path): + def __init__(self, gacha_log_path: Path = GACHA_LOG_PATH): self.gacha_log_path = gacha_log_path @staticmethod @@ -388,7 +392,7 @@ class GachaLog: four_star_avg = round((total - no_four_star) / four_star, 2) if four_star != 0 else 0 # 四星最多 four_star_name_list = [i.name for i in all_four] - four_star_max = max(four_star_name_list, key=four_star_name_list.count) + four_star_max = max(four_star_name_list, key=four_star_name_list.count) if four_star_name_list else "" four_star_max_count = four_star_name_list.count(four_star_max) return [ [ @@ -421,7 +425,7 @@ class GachaLog: four_star_avg = round((total - no_four_star) / four_star, 2) if four_star != 0 else 0 # 四星最多 four_star_name_list = [i.name for i in all_four] - four_star_max = max(four_star_name_list, key=four_star_name_list.count) + four_star_max = max(four_star_name_list, key=four_star_name_list.count) if four_star_name_list else "" four_star_max_count = four_star_name_list.count(four_star_max) return [ [ diff --git a/plugins/genshin/gacha/gacha_log.py b/plugins/genshin/gacha/gacha_log.py index b58eb3d..cab7caa 100644 --- a/plugins/genshin/gacha/gacha_log.py +++ b/plugins/genshin/gacha/gacha_log.py @@ -1,6 +1,5 @@ import json from io import BytesIO -from os import sep import genshin from aiofiles import open as async_open @@ -17,7 +16,7 @@ from core.plugin import Plugin, handler, conversation from core.template import TemplateService from core.user import UserService from core.user.error import UserNotFoundError -from metadata.scripts.paimon_moe import update_paimon_moe_zh +from metadata.scripts.paimon_moe import update_paimon_moe_zh, GACHA_LOG_PAIMON_MOE_PATH from modules.apihelper.hyperion import SignIn from modules.gacha_log.error import ( GachaLogInvalidAuthkey, @@ -38,9 +37,6 @@ from utils.helpers import get_genshin_client from utils.log import logger from utils.models.base import RegionEnum -GACHA_LOG_PATH = PROJECT_ROOT.joinpath("data", "apihelper", "gacha_log") -GACHA_LOG_PAIMON_MOE_PATH = PROJECT_ROOT.joinpath("metadata/data/paimon_moe_zh.json") -GACHA_LOG_PATH.mkdir(parents=True, exist_ok=True) INPUT_URL, INPUT_FILE, CONFIRM_DELETE = range(10100, 10103) @@ -59,7 +55,7 @@ class GachaLogPlugin(Plugin.Conversation, BasePlugin.Conversation): self.assets_service = assets self.cookie_service = cookie_service self.zh_dict = None - self.gacha_log = GachaLog(GACHA_LOG_PATH) + self.gacha_log = GachaLog() async def __async_init__(self): await update_paimon_moe_zh(False) diff --git a/plugins/system/get_chat.py b/plugins/system/get_chat.py index db2023f..abd6e37 100644 --- a/plugins/system/get_chat.py +++ b/plugins/system/get_chat.py @@ -29,6 +29,7 @@ class GetChat(Plugin): self.cookies_service = cookies_service self.user_service = user_service self.sign_service = sign_service + self.gacha_log = GachaLog() async def parse_group_chat(self, chat: Chat, admins: List[ChatMember]) -> str: text = f"群 ID:{chat.id}\n" f"群名称:{chat.title}\n" @@ -93,7 +94,7 @@ class GetChat(Plugin): else: text += f"\n自动签到:未开启" with contextlib.suppress(Exception): - gacha_log, status = await GachaLog.load_history_info(str(chat.id), str(uid)) + gacha_log, status = await self.gacha_log.load_history_info(str(chat.id), str(uid)) if status: text += f"\n抽卡记录:" for key, value in gacha_log.item_list.items():