fit nonebot.beta2

This commit is contained in:
HibiKier
2022-02-19 18:20:19 +08:00
parent ab443a21ec
commit 7dd68cf1ef
212 changed files with 6857 additions and 5615 deletions
+123 -56
View File
@@ -1,137 +1,204 @@
from typing import Any
from .config import DATA_PATH
from utils.utils import is_number
from pathlib import Path
from services.log import logger
from .config import DRAW_DATA_PATH
from .util import is_number
from nonebot.log import logger
try:
import ujson as json
except ModuleNotFoundError:
import json
def init_game_pool(game: str, data: dict, Operator: Any):
def init_game_pool(game: str, data: dict, operator: Any):
tmp_lst = []
if game == 'prts':
if game == "prts":
for key in data.keys():
limited = False
recruit_only = False
event_only = False
if '限定寻访' in data[key]['获取途径']:
if "限定寻访" in data[key]["获取途径"]:
limited = True
if '干员寻访' not in data[key]['获取途径'] and '公开招募' in data[key]['获取途径']:
if "干员寻访" not in data[key]["获取途径"] and "公开招募" in data[key]["获取途径"]:
recruit_only = True
if '活动获取' in data[key]['获取途径']:
if "活动获取" in data[key]["获取途径"]:
event_only = True
if '干员寻访' not in data[key]['获取途径'] and '凭证交易所' == data[key]['获取途径'][0]:
if "干员寻访" not in data[key]["获取途径"] and "凭证交易所" == data[key]["获取途径"][0]:
limited = True
if '干员寻访' not in data[key]['获取途径'] and '信用累计奖励' == data[key]['获取途径'][0]:
if "干员寻访" not in data[key]["获取途径"] and "信用累计奖励" == data[key]["获取途径"][0]:
limited = True
if key.find('阿米娅') != -1:
if key.find("阿米娅") != -1:
continue
try:
tmp_lst.append(Operator(name=key, star=int(data[key]['星级']),
limited=limited, recruit_only=recruit_only, event_only=event_only))
tmp_lst.append(
operator(
name=key,
star=int(data[key]["星级"]),
limited=limited,
recruit_only=recruit_only,
event_only=event_only,
)
)
except Exception as e:
logger.warning(f"明日方舟导入角色 {key} 数据错误:{type(e)}:{e}")
if game == 'genshin':
if game == "genshin":
for key in data.keys():
if key.find('旅行者') != -1:
if key.find("旅行者") != -1:
continue
limited = False
if data[key]['常驻/限定'] == '限定UP':
if data[key]["常驻/限定"] == "限定UP":
limited = True
try:
tmp_lst.append(Operator(name=key, star=int(data[key]['稀有度'][:1]), limited=limited))
tmp_lst.append(
operator(name=key, star=int(data[key]["稀有度"][:1]), limited=limited)
)
except Exception as e:
logger.warning(f"原神导入角色 {key} 数据错误:{type(e)}:{e}")
if game == 'genshin_arms':
if game == "genshin_arms":
for key in data.keys():
if data[key]['获取途径'].find('祈愿') != -1:
if data[key]["获取途径"].find("祈愿") != -1:
limited = False
if data[key]['获取途径'].find('限定祈愿') != -1:
if data[key]["获取途径"].find("限定祈愿") != -1:
limited = True
try:
tmp_lst.append(Operator(name=key, star=int(data[key]['稀有度'][:1]), limited=limited))
tmp_lst.append(
operator(
name=key, star=int(data[key]["稀有度"][:1]), limited=limited
)
)
except Exception as e:
logger.warning(f"原神导入武器 {key} 数据错误:{type(e)}:{e}")
if game == 'pretty':
if game == "pretty":
for key in data.keys():
try:
tmp_lst.append(Operator(name=key, star=data[key]['初始星级'], limited=False))
tmp_lst.append(
operator(name=key, star=data[key]["初始星级"], limited=False)
)
except Exception as e:
logger.warning(f"赛马娘导入角色 {key} 数据错误:{type(e)}:{e}")
if game == 'pretty_card':
if game == "pretty_card":
for key in data.keys():
limited = False
if '卡池' not in data[key]['获取方式']:
if "卡池" not in data[key]["获取方式"]:
limited = True
if not data[key]['获取方式']:
if not data[key]["获取方式"]:
limited = False
try:
tmp_lst.append(Operator(name=data[key]['中文名'], star=len(data[key]['稀有度']), limited=limited))
tmp_lst.append(
operator(
name=data[key]["中文名"],
star=len(data[key]["稀有度"]),
limited=limited,
)
)
except Exception as e:
logger.warning(f"赛马娘导入卡片 {key} 数据错误:{type(e)}:{e}")
if game in ['guardian', 'guardian_arms']:
if game in ["guardian", "guardian_arms"]:
for key in data.keys():
tmp_lst.append(Operator(name=data[key]['名称'], star=int(data[key]['星级']), limited=False))
if game == 'pcr':
tmp_lst.append(
operator(name=data[key]["名称"], star=int(data[key]["星级"]), limited=False)
)
if game == "pcr":
for key in data.keys():
limited = False
if key.find('(') != -1:
if key.find("(") != -1:
limited = True
try:
tmp_lst.append(Operator(name=data[key]['名称'], star=int(data[key]['星级']), limited=limited))
tmp_lst.append(
operator(
name=data[key]["名称"], star=int(data[key]["星级"]), limited=limited
)
)
except Exception as e:
logger.warning(f"公主连接导入角色 {key} 数据错误:{type(e)}:{e}")
if game == 'azur':
if game == "azur":
for key in data.keys():
if is_number(data[key]['星级']):
if is_number(data[key]["星级"]):
limited = False
if '可以建造' not in data[key]['获取途径']:
if "可以建造" not in data[key]["获取途径"]:
limited = True
try:
tmp_lst.append(Operator(name=data[key]['名称'], star=int(data[key]['星级']),
limited=limited, itype=data[key]['类型']))
tmp_lst.append(
operator(
name=data[key]["名称"],
star=int(data[key]["星级"]),
limited=limited,
type_=data[key]["类型"],
)
)
except Exception as e:
logger.warning(f"碧蓝航线导入角色 {key} 数据错误:{type(e)}:{e}")
if game in ['fgo', 'fgo_card']:
if game in ["fgo", "fgo_card"]:
for key in data.keys():
limited = False
try:
if "圣晶石召唤" not in data[key]['入手方式'] and "圣晶石召唤(Story卡池)" not in data[key]['入手方式']:
if (
"圣晶石召唤" not in data[key]["入手方式"]
and "圣晶石召唤(Story卡池)" not in data[key]["入手方式"]
):
limited = True
except KeyError:
pass
try:
tmp_lst.append(Operator(name=data[key]['名称'], star=int(data[key]['星级']), limited=limited))
tmp_lst.append(
operator(
name=data[key]["名称"], star=int(data[key]["星级"]), limited=limited
)
)
except Exception as e:
logger.warning(f"FGO导入角色 {key} 数据错误:{type(e)}:{e}")
if game == 'onmyoji':
if game == "onmyoji":
for key in data.keys():
limited = False
if key in ['奴良陆生', '卖药郎', '鬼灯', '阿香', '蜜桃&芥子', '犬夜叉', '杀生丸', '桔梗', '朽木露琪亚', '黑崎一护',
'灶门祢豆子', '灶门炭治郎']:
if key in [
"奴良陆生",
"卖药郎",
"鬼灯",
"阿香",
"蜜桃&芥子",
"犬夜叉",
"杀生丸",
"桔梗",
"朽木露琪亚",
"黑崎一护",
"灶门祢豆子",
"灶门炭治郎",
]:
limited = True
try:
tmp_lst.append(Operator(name=data[key]['名称'], star=data[key]['星级'], limited=limited))
tmp_lst.append(
operator(
name=data[key]["名称"], star=data[key]["星级"], limited=limited
)
)
except Exception as e:
logger.warning(f"阴阳师导入角色 {key} 数据错误:{type(e)}:{e}")
# print(tmp_lst)
char_name_lst = [x.name for x in tmp_lst]
up_char_file = Path(f'{DATA_PATH}/draw_card/draw_card_up/{game.split("_")[0]}_up_char.json')
up_char_file = (
DRAW_DATA_PATH
/ f"draw_card"
/ "draw_card_up"
/ f"{game.split('_')[0]}_up_char.json"
)
if up_char_file.exists():
data = json.load(open(up_char_file, 'r', encoding='utf8'))
if len(game.split('_')) == 1:
key = 'char'
data = json.load(open(up_char_file, "r", encoding="utf8"))
if len(game.split("_")) == 1:
key = "char"
else:
key = list(data.keys())[1]
for x in data[key]['up_char']:
for char in data[key]['up_char'][x]:
for x in data[key]["up_char"]:
for char in data[key]["up_char"][x]:
if char not in char_name_lst:
if game.find('prts') != -1:
tmp_lst.append(Operator(name=char, star=int(x),
recruit_only=False, event_only=False, limited=False))
if game.find("prts") != -1:
tmp_lst.append(
operator(
name=char,
star=int(x),
recruit_only=False,
event_only=False,
limited=False,
)
)
else:
tmp_lst.append(Operator(name=char, star=int(x), limited=False))
tmp_lst.append(operator(name=char, star=int(x), limited=False))
return tmp_lst