🐛 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 core.services.players import PlayersService
from gram_core.services.template.services import TemplateService from gram_core.services.template.services import TemplateService
from gram_core.services.users.services import UserAdminService 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.gcsim.file import PlayerGCSimScripts
from modules.playercards.file import PlayerCardsFile from modules.playercards.file import PlayerCardsFile
from plugins.genshin.gcsim.renderer import GCSimResultRenderer 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]: def _filter_fits_by_names(names: List[str], fits: List[GCSimFit]) -> List[GCSimFit]:
if not names: if not names:
return fits 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( async def _get_uid_names(
self, user_id: int, args: List[str], reply: Optional["Message"] self, user_id: int, args: List[str], reply: Optional["Message"]