mirror of
https://github.com/baiqwerdvd/StarRailUID.git
synced 2025-05-07 04:03:44 +08:00
🐛 修复导入抽卡记录的问题
修复换用 msgspec 后会导致第一次导入抽卡记录出现错误
This commit is contained in:
parent
46f264e752
commit
c9e2e94876
@ -3,10 +3,13 @@ import asyncio
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from urllib import parse
|
from urllib import parse
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Dict, Optional
|
from typing import Dict, List, Optional
|
||||||
|
|
||||||
|
import msgspec
|
||||||
|
|
||||||
from ..utils.mys_api import mys_api
|
from ..utils.mys_api import mys_api
|
||||||
from ..utils.resource.RESOURCE_PATH import PLAYER_PATH
|
from ..utils.resource.RESOURCE_PATH import PLAYER_PATH
|
||||||
|
from ..sruid_utils.api.mys.models import SingleGachaLog
|
||||||
|
|
||||||
gacha_type_meta_data = {
|
gacha_type_meta_data = {
|
||||||
'群星跃迁': ['1'],
|
'群星跃迁': ['1'],
|
||||||
@ -19,6 +22,7 @@ gacha_type_meta_data = {
|
|||||||
async def get_new_gachalog_by_link(
|
async def get_new_gachalog_by_link(
|
||||||
uid: str, gacha_url: str, full_data: Dict, is_force: bool
|
uid: str, gacha_url: str, full_data: Dict, is_force: bool
|
||||||
):
|
):
|
||||||
|
full_data = msgspec.convert(full_data, type=Dict[str, List[SingleGachaLog]])
|
||||||
temp = []
|
temp = []
|
||||||
for gacha_name in gacha_type_meta_data:
|
for gacha_name in gacha_type_meta_data:
|
||||||
for gacha_type in gacha_type_meta_data[gacha_name]:
|
for gacha_type in gacha_type_meta_data[gacha_name]:
|
||||||
@ -46,7 +50,7 @@ async def get_new_gachalog_by_link(
|
|||||||
temp = []
|
temp = []
|
||||||
break
|
break
|
||||||
if len(full_data[gacha_name]) >= 1:
|
if len(full_data[gacha_name]) >= 1:
|
||||||
if int(data[-1].id) <= int(full_data[gacha_name][0]['id']):
|
if int(data[-1].id) <= int(full_data[gacha_name][0].id):
|
||||||
full_data[gacha_name].extend(data)
|
full_data[gacha_name].extend(data)
|
||||||
else:
|
else:
|
||||||
full_data[gacha_name][0:0] = data
|
full_data[gacha_name][0:0] = data
|
||||||
@ -137,7 +141,7 @@ async def save_gachalogs(
|
|||||||
result['weapon_gacha_num'] = len(raw_data['光锥跃迁'])
|
result['weapon_gacha_num'] = len(raw_data['光锥跃迁'])
|
||||||
for i in ['群星跃迁', '角色跃迁', '光锥跃迁']:
|
for i in ['群星跃迁', '角色跃迁', '光锥跃迁']:
|
||||||
if len(raw_data[i]) > 1:
|
if len(raw_data[i]) > 1:
|
||||||
raw_data[i].sort(key=lambda x: (-int(x['id'])))
|
raw_data[i].sort(key=lambda x: (-int(x.id)))
|
||||||
result['data'] = raw_data
|
result['data'] = raw_data
|
||||||
|
|
||||||
# 计算数据
|
# 计算数据
|
||||||
@ -148,8 +152,9 @@ async def save_gachalogs(
|
|||||||
all_add = normal_add + char_add + weapon_add + begin_gacha_add
|
all_add = normal_add + char_add + weapon_add + begin_gacha_add
|
||||||
|
|
||||||
# 保存文件
|
# 保存文件
|
||||||
|
result = msgspec.to_builtins(result)
|
||||||
with Path.open(gachalogs_path, 'w', encoding='UTF-8') as file:
|
with Path.open(gachalogs_path, 'w', encoding='UTF-8') as file:
|
||||||
json.dump(result, file, ensure_ascii=False)
|
json.dump(result, file, indent=2, ensure_ascii=False)
|
||||||
|
|
||||||
# 回复文字
|
# 回复文字
|
||||||
if all_add == 0:
|
if all_add == 0:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user