From d325eab760ca258efcd173f12487dc2558cc361f Mon Sep 17 00:00:00 2001 From: qwewqa <198e559dbd446d973355f415bdfa34@gmail.com> Date: Sat, 16 Jan 2021 16:21:11 -0500 Subject: [PATCH] add event aliases --- miyu_bot/commands/common/aliases/event.py | 12 ++++++++++++ .../commands/common/master_asset_manager.py | 18 ++++++++++++++---- 2 files changed, 26 insertions(+), 4 deletions(-) create mode 100644 miyu_bot/commands/common/aliases/event.py diff --git a/miyu_bot/commands/common/aliases/event.py b/miyu_bot/commands/common/aliases/event.py new file mode 100644 index 0000000..c1b7fc1 --- /dev/null +++ b/miyu_bot/commands/common/aliases/event.py @@ -0,0 +1,12 @@ +event_aliases = { + 'halloween 2020': 1, + 'candy': 2, + 'swimsuits 2020': 3, + 'maids': 5, + 'christmas 2020': 6, + 'countdown': 7, + 'monster hunter pt1': 9, + 'mh1': 9, + 'monster hunter pt2': 10, + 'mh2': 10, +} diff --git a/miyu_bot/commands/common/master_asset_manager.py b/miyu_bot/commands/common/master_asset_manager.py index e7b2bd3..427076b 100644 --- a/miyu_bot/commands/common/master_asset_manager.py +++ b/miyu_bot/commands/common/master_asset_manager.py @@ -7,6 +7,7 @@ from d4dj_utils.manager.asset_manager import AssetManager from d4dj_utils.master.master_asset import MasterDict, MasterAsset from discord.ext import commands +from miyu_bot.commands.common.aliases.event import event_aliases from miyu_bot.commands.common.fuzzy_matching import FuzzyFilteredMap, romanize import datetime as dt @@ -23,19 +24,22 @@ class MasterFilterManager: ) self.events = MasterFilter( self.manager.event_master, + aliases=event_aliases, naming_function=lambda e: e.name, - filter_function=lambda e: e.start_datetime < dt.datetime.now( - dt.timezone.utc) + dt.timedelta(hours=12), + filter_function=lambda e: e.start_datetime < dt.datetime.now(dt.timezone.utc) + dt.timedelta(hours=12), ) self.cards = MasterFilter( self.manager.card_master, - naming_function=lambda c: f'{c.rarity_id}★ {c.name} {c.character.full_name_english}', + naming_function=lambda c: c.name, filter_function=lambda c: c.is_released, ) class MasterFilter: - def __init__(self, masters: MasterDict, naming_function: Callable[[Any], str], filter_function=lambda _: True, + def __init__(self, masters: MasterDict, + naming_function: Callable[[Any], str], + aliases: Optional[dict] = None, + filter_function=lambda _: True, fallback_naming_function: Optional[Callable[[Any], str]] = None): self.masters = masters self.default_filter = FuzzyFilteredMap(filter_function) @@ -50,6 +54,12 @@ class MasterFilter: continue self.default_filter.set_unprocessed(name, master) self.unrestricted_filter.set_unprocessed(name, master) + if aliases: + for alias, mid in aliases.items(): + master = masters[mid] + alias = romanize(alias) + self.default_filter.set_unprocessed(alias, master) + self.unrestricted_filter.set_unprocessed(alias, master) def get(self, name_or_id: str, ctx: Optional[commands.Context]): if ctx and ctx.channel.id in no_filter_channels: