Utility bot for rhythm game D4DJ. (Note that some dependencies are not public)
miyu-bot/miyu_bot/commands/common/event.py

19 lines
773 B

from d4dj_utils.master.event_master import EventMaster, EventState
from discord.ext import commands
from main import masters
def get_latest_event(ctx: commands.Context) -> EventMaster:
"""Returns the oldest event that has not ended or the newest event otherwise."""
try:
# NY event overlapped with previous event
return min((v for v in masters.events.values(ctx) if v.state() == EventState.Open),
key=lambda e: e.start_datetime)
except ValueError:
try:
return min((v for v in masters.events.values(ctx) if v.state() < EventState.Ended),
key=lambda e: e.start_datetime)
except ValueError:
return max(masters.events.values(ctx), key=lambda v: v.start_datetime)