3
0
Telegram_PaimonBot/defs/char_adv.py

96 lines
2.9 KiB
Python

import os
from openpyxl import load_workbook
FILE_PATH = "assets"
char_adv_im = '''{}
【五星武器】:{}
【四星武器】:{}
【三星武器】:{}
【圣遗物】:
{}'''
async def weapon_adv(name):
char_adv_path = os.path.join(FILE_PATH, "Genshin_All_Char.xlsx")
wb = load_workbook(char_adv_path)
ws = wb.active
weapon_name = ""
weapons = {}
for c in range(2, 5):
for r in range(2, 300):
if ws.cell(r, c).value:
# if all(i in ws.cell(r,c).value for i in name):
if name in ws.cell(r, c).value:
weapon_name = ws.cell(r, c).value
weapon = weapons.get(weapon_name, [])
weapon.append(ws.cell(2 + ((r - 2) // 5) * 5, 1).value)
weapons[weapon_name] = weapon
if weapons:
im = []
for k, v in weapons.items():
im.append(f'{"".join(v)}可能会用到【{k}')
im = '\n'.join(im)
else:
im = " 没有角色能使用【{}".format(weapon_name if weapon_name else name)
return im
async def char_adv(name):
char_adv_path = os.path.join(FILE_PATH, "Genshin_All_Char.xlsx")
wb = load_workbook(char_adv_path)
ws = wb.active
char_list = ws["A"]
index = None
for i in char_list:
if i.value:
if all(g in i.value for g in name):
# if name in i.value:
index = i.row
char_name = i.value
if index:
weapon_5star = ""
for i in range(index, index + 5):
if ws.cell(i, 2).value:
weapon_5star += ws.cell(i, 2).value + ">"
if weapon_5star != "":
weapon_5star = weapon_5star[:-1]
else:
weapon_5star = "无推荐"
weapon_4star = ""
for i in range(index, index + 5):
if ws.cell(i, 3).value:
weapon_4star += ws.cell(i, 3).value + ">"
if weapon_4star != "":
weapon_4star = weapon_4star[:-1]
else:
weapon_4star = "无推荐"
weapon_3star = ""
for i in range(index, index + 5):
if ws.cell(i, 4).value:
weapon_3star += ws.cell(i, 4).value + ">"
if weapon_3star != "":
weapon_3star = weapon_3star[:-1]
else:
weapon_3star = "无推荐"
artifacts = ""
for i in range(index, index + 5):
if ws.cell(i, 5).value:
if ws.cell(i, 6).value:
artifacts += ws.cell(i, 5).value + "*2" + ws.cell(i, 6).value + "*2" + "\n"
else:
artifacts += ws.cell(i, 5).value + "*4" + "\n"
if artifacts != "":
artifacts = artifacts[:-1]
else:
artifacts = "无推荐"
im = char_adv_im.format(char_name, weapon_5star, weapon_4star, weapon_3star, artifacts) # noqa
return im