diff --git a/metadata/scripts/paimon_moe.py b/metadata/scripts/paimon_moe.py
index 69a2570f..472ad461 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 f52f5bfb..d9c7cc08 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 b58eb3d2..cab7caa2 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 db2023f9..abd6e370 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():