mirror of
https://github.com/KimigaiiWuyi/GenshinUID.git
synced 2025-06-03 05:59:51 +08:00
新增:武器已支持查询某个固定等级属性 & 支持模糊查询;修复:角色查等级时元素精通数值不正确显示。
This commit is contained in:
parent
3d8c4b8ba2
commit
a95b27c181
75
__init__.py
75
__init__.py
@ -162,7 +162,12 @@ async def _(bot:HoshinoBot, ev: CQEvent):
|
|||||||
@sv.on_prefix('武器')
|
@sv.on_prefix('武器')
|
||||||
async def _(bot:HoshinoBot, ev: CQEvent):
|
async def _(bot:HoshinoBot, ev: CQEvent):
|
||||||
message = ev.message.extract_plain_text()
|
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)
|
await bot.send(ev,im,at_sender=True)
|
||||||
|
|
||||||
@sv.on_prefix('角色')
|
@sv.on_prefix('角色')
|
||||||
@ -714,36 +719,45 @@ async def daily(mode="push", uid=None):
|
|||||||
{"qid": row[2], "gid": row[3], "message": send_mes})
|
{"qid": row[2], "gid": row[3], "message": send_mes})
|
||||||
return temp_list
|
return temp_list
|
||||||
|
|
||||||
async def weapon_wiki(name):
|
async def weapon_wiki(name,level = None):
|
||||||
data = await GetWeaponInfo(name)
|
data = await GetWeaponInfo(name)
|
||||||
name = data['name']
|
if level:
|
||||||
type = data['weapontype']
|
data2 = await GetWeaponInfo(name,level+"plus" if level else level)
|
||||||
star = data['rarity'] + "星"
|
if data["substat"] != "":
|
||||||
info = data['description']
|
sp = data["substat"] + ":" + '%.1f%%' % (data2["specialized"] * 100) if data["substat"] != "元素精通" else data["substat"] + ":" + str(math.floor(data2["specialized"]))
|
||||||
atk = str(data['baseatk'])
|
else:
|
||||||
sub_name = data['substat']
|
sp = ""
|
||||||
if data['subvalue'] != "":
|
im = (data["name"] + "\n等级:" + str(data2["level"]) + "(突破" + str(data2["ascension"]) + ")" +
|
||||||
sub_val = (data['subvalue'] +
|
"\n攻击力:" + str(math.floor(data2["attack"])) + "\n" + sp)
|
||||||
'%') if sub_name != '元素精通' else data['subvalue']
|
|
||||||
sub = "\n" + "【" + sub_name + "】" + sub_val
|
|
||||||
else:
|
else:
|
||||||
sub = ""
|
name = data['name']
|
||||||
|
type = data['weapontype']
|
||||||
|
star = data['rarity'] + "星"
|
||||||
|
info = data['description']
|
||||||
|
atk = str(data['baseatk'])
|
||||||
|
sub_name = data['substat']
|
||||||
|
if data['subvalue'] != "":
|
||||||
|
sub_val = (data['subvalue'] +
|
||||||
|
'%') if sub_name != '元素精通' else data['subvalue']
|
||||||
|
sub = "\n" + "【" + sub_name + "】" + sub_val
|
||||||
|
else:
|
||||||
|
sub = ""
|
||||||
|
|
||||||
if data['effectname'] != "":
|
if data['effectname'] != "":
|
||||||
raw_effect = data['effect']
|
raw_effect = data['effect']
|
||||||
rw_ef = []
|
rw_ef = []
|
||||||
for i in range(len(data['r1'])):
|
for i in range(len(data['r1'])):
|
||||||
now = ''
|
now = ''
|
||||||
for j in range(1, 6):
|
for j in range(1, 6):
|
||||||
now = now + data['r{}'.format(j)][i] + "/"
|
now = now + data['r{}'.format(j)][i] + "/"
|
||||||
now = now[:-1]
|
now = now[:-1]
|
||||||
rw_ef.append(now)
|
rw_ef.append(now)
|
||||||
raw_effect = raw_effect.format(*rw_ef)
|
raw_effect = raw_effect.format(*rw_ef)
|
||||||
effect = "\n" + "【" + data['effectname'] + "】" + ":" + raw_effect
|
effect = "\n" + "【" + data['effectname'] + "】" + ":" + raw_effect
|
||||||
else:
|
else:
|
||||||
effect = ""
|
effect = ""
|
||||||
im = weapon_im.format(name, type, star, info, atk,
|
im = weapon_im.format(name, type, star, info, atk,
|
||||||
sub, effect)
|
sub, effect)
|
||||||
return im
|
return im
|
||||||
|
|
||||||
async def char_wiki(name, mode=0, num="", extra=""):
|
async def char_wiki(name, mode=0, num="", extra=""):
|
||||||
@ -790,9 +804,10 @@ async def char_wiki(name, mode=0, num="", extra=""):
|
|||||||
|
|
||||||
elif extra == "stats":
|
elif extra == "stats":
|
||||||
data2 = await GetCharInfo(name, mode, num)
|
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攻击力:" + str(math.floor(data2["attack"])) + "\n防御力:" + str(math.floor(data2["defense"])) +
|
||||||
"\n" + data["substat"] + ":" + '%.1f%%' % (data2["specialized"] * 100))
|
"\n" + sp)
|
||||||
else:
|
else:
|
||||||
name = data['title'] + ' — ' + data['name']
|
name = data['title'] + ' — ' + data['name']
|
||||||
star = data['rarity']
|
star = data['rarity']
|
||||||
|
8
getDB.py
8
getDB.py
@ -668,16 +668,14 @@ async def GetMysInfo(mysid,ck):
|
|||||||
print("米游社信息读取老Api失败!")
|
print("米游社信息读取老Api失败!")
|
||||||
print(e.with_traceback)
|
print(e.with_traceback)
|
||||||
|
|
||||||
async def GetWeaponInfo(name):
|
async def GetWeaponInfo(name,level = None):
|
||||||
async with AsyncClient() as client:
|
async with AsyncClient() as client:
|
||||||
req = await client.get(
|
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={
|
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',
|
'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'})
|
'Referer': 'https://genshin.minigg.cn/index.html'})
|
||||||
soup = BeautifulSoup(req.text, "lxml")
|
data = jsonfy(req.text)
|
||||||
item = soup.select_one("pre").text
|
|
||||||
data = json.loads(item)
|
|
||||||
return data
|
return data
|
||||||
|
|
||||||
async def GetCharTalentsInfo(name):
|
async def GetCharTalentsInfo(name):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user