mirror of
https://github.com/PaiGramTeam/PaiGram.git
synced 2024-11-22 07:07:46 +00:00
🐛 修复 gacha_log 无法分析单抽五星的问题
This commit is contained in:
parent
c16aed1df3
commit
cf8e725a1f
@ -2,13 +2,14 @@ from utils.const import PROJECT_ROOT
|
|||||||
from aiofiles import open as async_open
|
from aiofiles import open as async_open
|
||||||
from httpx import AsyncClient, URL
|
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):
|
async def update_paimon_moe_zh(overwrite: bool = True):
|
||||||
path = PROJECT_ROOT.joinpath("metadata/data/paimon_moe_zh.json")
|
if not overwrite and GACHA_LOG_PAIMON_MOE_PATH.exists():
|
||||||
if not overwrite and path.exists():
|
|
||||||
return
|
return
|
||||||
host = URL("https://raw.fastgit.org/MadeBaruna/paimon-moe/main/src/locales/items/zh.json")
|
host = URL("https://raw.fastgit.org/MadeBaruna/paimon-moe/main/src/locales/items/zh.json")
|
||||||
client = AsyncClient()
|
client = AsyncClient()
|
||||||
text = (await client.get(host)).text
|
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)
|
await file.write(text)
|
||||||
|
@ -36,10 +36,14 @@ from modules.gacha_log.models import (
|
|||||||
UIGFInfo,
|
UIGFInfo,
|
||||||
UIGFItem,
|
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:
|
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
|
self.gacha_log_path = gacha_log_path
|
||||||
|
|
||||||
@staticmethod
|
@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_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_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)
|
four_star_max_count = four_star_name_list.count(four_star_max)
|
||||||
return [
|
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_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_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)
|
four_star_max_count = four_star_name_list.count(four_star_max)
|
||||||
return [
|
return [
|
||||||
[
|
[
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import json
|
import json
|
||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
from os import sep
|
|
||||||
|
|
||||||
import genshin
|
import genshin
|
||||||
from aiofiles import open as async_open
|
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.template import TemplateService
|
||||||
from core.user import UserService
|
from core.user import UserService
|
||||||
from core.user.error import UserNotFoundError
|
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.apihelper.hyperion import SignIn
|
||||||
from modules.gacha_log.error import (
|
from modules.gacha_log.error import (
|
||||||
GachaLogInvalidAuthkey,
|
GachaLogInvalidAuthkey,
|
||||||
@ -38,9 +37,6 @@ from utils.helpers import get_genshin_client
|
|||||||
from utils.log import logger
|
from utils.log import logger
|
||||||
from utils.models.base import RegionEnum
|
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)
|
INPUT_URL, INPUT_FILE, CONFIRM_DELETE = range(10100, 10103)
|
||||||
|
|
||||||
|
|
||||||
@ -59,7 +55,7 @@ class GachaLogPlugin(Plugin.Conversation, BasePlugin.Conversation):
|
|||||||
self.assets_service = assets
|
self.assets_service = assets
|
||||||
self.cookie_service = cookie_service
|
self.cookie_service = cookie_service
|
||||||
self.zh_dict = None
|
self.zh_dict = None
|
||||||
self.gacha_log = GachaLog(GACHA_LOG_PATH)
|
self.gacha_log = GachaLog()
|
||||||
|
|
||||||
async def __async_init__(self):
|
async def __async_init__(self):
|
||||||
await update_paimon_moe_zh(False)
|
await update_paimon_moe_zh(False)
|
||||||
|
@ -29,6 +29,7 @@ class GetChat(Plugin):
|
|||||||
self.cookies_service = cookies_service
|
self.cookies_service = cookies_service
|
||||||
self.user_service = user_service
|
self.user_service = user_service
|
||||||
self.sign_service = sign_service
|
self.sign_service = sign_service
|
||||||
|
self.gacha_log = GachaLog()
|
||||||
|
|
||||||
async def parse_group_chat(self, chat: Chat, admins: List[ChatMember]) -> str:
|
async def parse_group_chat(self, chat: Chat, admins: List[ChatMember]) -> str:
|
||||||
text = f"群 ID:<code>{chat.id}</code>\n" f"群名称:<code>{chat.title}</code>\n"
|
text = f"群 ID:<code>{chat.id}</code>\n" f"群名称:<code>{chat.title}</code>\n"
|
||||||
@ -93,7 +94,7 @@ class GetChat(Plugin):
|
|||||||
else:
|
else:
|
||||||
text += f"\n自动签到:未开启"
|
text += f"\n自动签到:未开启"
|
||||||
with contextlib.suppress(Exception):
|
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:
|
if status:
|
||||||
text += f"\n抽卡记录:"
|
text += f"\n抽卡记录:"
|
||||||
for key, value in gacha_log.item_list.items():
|
for key, value in gacha_log.item_list.items():
|
||||||
|
Loading…
Reference in New Issue
Block a user