🐛 Fix gcsim filter by alternative names

This commit is contained in:
Lei Shi 2023-12-05 03:14:57 +01:00 committed by GitHub
parent 84b2bff073
commit 19fb808cf2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -13,7 +13,7 @@ from core.plugin import Plugin, handler
from core.services.players import PlayersService
from gram_core.services.template.services import TemplateService
from gram_core.services.users.services import UserAdminService
from metadata.shortname import roleToName, roleToId
from metadata.shortname import roles, roleToName, roleToId
from modules.gcsim.file import PlayerGCSimScripts
from modules.playercards.file import PlayerCardsFile
from plugins.genshin.gcsim.renderer import GCSimResultRenderer
@ -113,7 +113,14 @@ class GCSimPlugin(Plugin):
def _filter_fits_by_names(names: List[str], fits: List[GCSimFit]) -> List[GCSimFit]:
if not names:
return fits
return [fit for fit in fits if all(name in [str(i) for i in fit.characters] for name in names)]
return [
fit
for fit in fits
if all(
name in [alternative_names for gc in fit.characters for alternative_names in roles[gc.id]]
for name in names
)
]
async def _get_uid_names(
self, user_id: int, args: List[str], reply: Optional["Message"]