新增:武器已支持查询某个固定等级属性 & 支持模糊查询;修复:角色查等级时元素精通数值不正确显示。

This commit is contained in:
Wuyi无疑 2021-12-30 00:41:24 +08:00
parent 3d8c4b8ba2
commit a95b27c181
2 changed files with 48 additions and 35 deletions

View File

@ -162,7 +162,12 @@ async def _(bot:HoshinoBot, ev: CQEvent):
@sv.on_prefix('武器')
async def _(bot:HoshinoBot, ev: CQEvent):
message = ev.message.extract_plain_text()
im = await weapon_wiki(message)
name = ''.join(re.findall('[\u4e00-\u9fa5]', message))
level = re.findall(r"[0-9]+", message)
if len(level) == 1:
im = await weapon_wiki(name,level=level[0])
else:
im = await weapon_wiki(name)
await bot.send(ev,im,at_sender=True)
@sv.on_prefix('角色')
@ -714,8 +719,17 @@ async def daily(mode="push", uid=None):
{"qid": row[2], "gid": row[3], "message": send_mes})
return temp_list
async def weapon_wiki(name):
async def weapon_wiki(name,level = None):
data = await GetWeaponInfo(name)
if level:
data2 = await GetWeaponInfo(name,level+"plus" if level else level)
if data["substat"] != "":
sp = data["substat"] + "" + '%.1f%%' % (data2["specialized"] * 100) if data["substat"] != "元素精通" else data["substat"] + "" + str(math.floor(data2["specialized"]))
else:
sp = ""
im = (data["name"] + "\n等级:" + str(data2["level"]) + "(突破" + str(data2["ascension"]) + "" +
"\n攻击力:" + str(math.floor(data2["attack"])) + "\n" + sp)
else:
name = data['name']
type = data['weapontype']
star = data['rarity'] + ""
@ -790,9 +804,10 @@ async def char_wiki(name, mode=0, num="", extra=""):
elif extra == "stats":
data2 = await GetCharInfo(name, mode, num)
im = (name + "\n等级:" + str(data2["level"]) + "\n血量:" + str(math.floor(data2["hp"])) +
sp = data["substat"] + "" + '%.1f%%' % (data2["specialized"] * 100) if data["substat"] != "元素精通" else data["substat"] + "" + str(math.floor(data2["specialized"]))
im = (data["name"] + "\n等级:" + str(data2["level"]) + "\n血量:" + str(math.floor(data2["hp"])) +
"\n攻击力:" + str(math.floor(data2["attack"])) + "\n防御力:" + str(math.floor(data2["defense"])) +
"\n" + data["substat"] + "" + '%.1f%%' % (data2["specialized"] * 100))
"\n" + sp)
else:
name = data['title'] + '' + data['name']
star = data['rarity']

View File

@ -668,16 +668,14 @@ async def GetMysInfo(mysid,ck):
print("米游社信息读取老Api失败")
print(e.with_traceback)
async def GetWeaponInfo(name):
async def GetWeaponInfo(name,level = None):
async with AsyncClient() as client:
req = await client.get(
url="https://genshin.minigg.cn/?weapons=" + name,
url="https://api.minigg.cn/weapons?query=" + name + "&stats=" + level if level else "https://api.minigg.cn/weapons?query=" + name,
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36',
'Referer': 'https://genshin.minigg.cn/index.html'})
soup = BeautifulSoup(req.text, "lxml")
item = soup.select_one("pre").text
data = json.loads(item)
data = jsonfy(req.text)
return data
async def GetCharTalentsInfo(name):