add event aliases
This commit is contained in:
parent
6c8aec3a08
commit
d325eab760
12
miyu_bot/commands/common/aliases/event.py
Normal file
12
miyu_bot/commands/common/aliases/event.py
Normal file
@ -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,
|
||||||
|
}
|
@ -7,6 +7,7 @@ from d4dj_utils.manager.asset_manager import AssetManager
|
|||||||
from d4dj_utils.master.master_asset import MasterDict, MasterAsset
|
from d4dj_utils.master.master_asset import MasterDict, MasterAsset
|
||||||
from discord.ext import commands
|
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
|
from miyu_bot.commands.common.fuzzy_matching import FuzzyFilteredMap, romanize
|
||||||
|
|
||||||
import datetime as dt
|
import datetime as dt
|
||||||
@ -23,19 +24,22 @@ class MasterFilterManager:
|
|||||||
)
|
)
|
||||||
self.events = MasterFilter(
|
self.events = MasterFilter(
|
||||||
self.manager.event_master,
|
self.manager.event_master,
|
||||||
|
aliases=event_aliases,
|
||||||
naming_function=lambda e: e.name,
|
naming_function=lambda e: e.name,
|
||||||
filter_function=lambda e: e.start_datetime < dt.datetime.now(
|
filter_function=lambda e: e.start_datetime < dt.datetime.now(dt.timezone.utc) + dt.timedelta(hours=12),
|
||||||
dt.timezone.utc) + dt.timedelta(hours=12),
|
|
||||||
)
|
)
|
||||||
self.cards = MasterFilter(
|
self.cards = MasterFilter(
|
||||||
self.manager.card_master,
|
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,
|
filter_function=lambda c: c.is_released,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class MasterFilter:
|
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):
|
fallback_naming_function: Optional[Callable[[Any], str]] = None):
|
||||||
self.masters = masters
|
self.masters = masters
|
||||||
self.default_filter = FuzzyFilteredMap(filter_function)
|
self.default_filter = FuzzyFilteredMap(filter_function)
|
||||||
@ -50,6 +54,12 @@ class MasterFilter:
|
|||||||
continue
|
continue
|
||||||
self.default_filter.set_unprocessed(name, master)
|
self.default_filter.set_unprocessed(name, master)
|
||||||
self.unrestricted_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]):
|
def get(self, name_or_id: str, ctx: Optional[commands.Context]):
|
||||||
if ctx and ctx.channel.id in no_filter_channels:
|
if ctx and ctx.channel.id in no_filter_channels:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user