🐛 Fix avatar_list: AttributeError: 'NoneType' object has no attribute 'avatar'

The list of `Character` may contain `None`
This commit is contained in:
Nahida 2023-01-06 00:04:59 +08:00 committed by 洛水居室
parent af529a642f
commit b0300134cb
No known key found for this signature in database
GPG Key ID: C9DE87DA724B88FC

View File

@ -157,26 +157,21 @@ class AvatarListPlugin(Plugin, BasePlugin):
task_results = await asyncio.gather(*[_task(character) for character in characters])
return list(
filter(
lambda x: x,
sorted(
task_results,
key=lambda x: (
x.avatar.level,
x.avatar.rarity,
x.sum_of_skills(),
x.avatar.constellation,
# TODO 如果加入武器排序条件需要把武器转化为图片url的处理后置
# x.weapon.level,
# x.weapon.rarity,
# x.weapon.refinement,
x.avatar.friendship,
),
reverse=True,
)[:max_length],
)
)
return sorted(
list(filter(lambda x: x, task_results)),
key=lambda x: (
x.avatar.level,
x.avatar.rarity,
x.sum_of_skills(),
x.avatar.constellation,
# TODO 如果加入武器排序条件需要把武器转化为图片url的处理后置
# x.weapon.level,
# x.weapon.rarity,
# x.weapon.refinement,
x.avatar.friendship,
),
reverse=True,
)[:max_length]
async def get_final_data(self, client: Client, characters: Sequence[Character], update: Update):
try: