diff options
Diffstat (limited to 'bot')
| -rw-r--r-- | bot/exts/events/advent_of_code/_cog.py | 4 | ||||
| -rw-r--r-- | bot/exts/events/advent_of_code/_helpers.py | 13 | ||||
| -rw-r--r-- | bot/exts/events/advent_of_code/views/dayandstarview.py | 8 | ||||
| -rw-r--r-- | bot/exts/utilities/epoch.py | 2 | 
4 files changed, 18 insertions, 9 deletions
| diff --git a/bot/exts/events/advent_of_code/_cog.py b/bot/exts/events/advent_of_code/_cog.py index 01161f26..3acfef39 100644 --- a/bot/exts/events/advent_of_code/_cog.py +++ b/bot/exts/events/advent_of_code/_cog.py @@ -96,7 +96,9 @@ class AdventOfCode(commands.Cog):                  # Only give the role to people who have completed all 50 stars                  continue -            member_id = aoc_name_to_member_id.get(member_aoc_info["name"], None) +            aoc_name = member_aoc_info["name"] or f"Anonymous #{member_aoc_info['id']}" + +            member_id = aoc_name_to_member_id.get(aoc_name)              if not member_id:                  log.debug(f"Could not find member_id for {member_aoc_info['name']}, not giving role.")                  continue diff --git a/bot/exts/events/advent_of_code/_helpers.py b/bot/exts/events/advent_of_code/_helpers.py index 807cc275..15b1329d 100644 --- a/bot/exts/events/advent_of_code/_helpers.py +++ b/bot/exts/events/advent_of_code/_helpers.py @@ -332,7 +332,7 @@ async def fetch_leaderboard(invalidate_cache: bool = False, self_placement_name:          number_of_participants = len(leaderboard)          formatted_leaderboard = _format_leaderboard(leaderboard)          full_leaderboard_url = await _upload_leaderboard(formatted_leaderboard) -        leaderboard_fetched_at = datetime.datetime.utcnow().isoformat() +        leaderboard_fetched_at = datetime.datetime.now(datetime.timezone.utc).isoformat()          cached_leaderboard = {              "placement_leaderboard": json.dumps(raw_leaderboard_data), @@ -368,11 +368,13 @@ def get_summary_embed(leaderboard: dict) -> discord.Embed:      """Get an embed with the current summary stats of the leaderboard."""      leaderboard_url = leaderboard["full_leaderboard_url"]      refresh_minutes = AdventOfCode.leaderboard_cache_expiry_seconds // 60 +    refreshed_unix = int(datetime.datetime.fromisoformat(leaderboard["leaderboard_fetched_at"]).timestamp()) -    aoc_embed = discord.Embed( -        colour=Colours.soft_green, -        timestamp=datetime.datetime.fromisoformat(leaderboard["leaderboard_fetched_at"]), -        description=f"*The leaderboard is refreshed every {refresh_minutes} minutes.*" +    aoc_embed = discord.Embed(colour=Colours.soft_green) + +    aoc_embed.description = ( +        f"The leaderboard is refreshed every {refresh_minutes} minutes.\n" +        f"Last Updated: <t:{refreshed_unix}:t>"      )      aoc_embed.add_field(          name="Number of Participants", @@ -386,7 +388,6 @@ def get_summary_embed(leaderboard: dict) -> discord.Embed:              inline=True,          )      aoc_embed.set_author(name="Advent of Code", url=leaderboard_url) -    aoc_embed.set_footer(text="Last Updated")      aoc_embed.set_thumbnail(url=AOC_EMBED_THUMBNAIL)      return aoc_embed diff --git a/bot/exts/events/advent_of_code/views/dayandstarview.py b/bot/exts/events/advent_of_code/views/dayandstarview.py index a0bfa316..5529c12b 100644 --- a/bot/exts/events/advent_of_code/views/dayandstarview.py +++ b/bot/exts/events/advent_of_code/views/dayandstarview.py @@ -42,7 +42,13 @@ class AoCDropdownView(discord.ui.View):      async def interaction_check(self, interaction: discord.Interaction) -> bool:          """Global check to ensure that the interacting user is the user who invoked the command originally.""" -        return interaction.user == self.original_author +        if interaction.user != self.original_author: +            await interaction.response.send_message( +                ":x: You can't interact with someone else's response. Please run the command yourself!", +                ephemeral=True +            ) +            return False +        return True      @discord.ui.select(          placeholder="Day", diff --git a/bot/exts/utilities/epoch.py b/bot/exts/utilities/epoch.py index b9feed18..03758af0 100644 --- a/bot/exts/utilities/epoch.py +++ b/bot/exts/utilities/epoch.py @@ -35,7 +35,7 @@ class DateString(commands.Converter):          """          try:              return arrow.utcnow().dehumanize(argument) -        except ValueError: +        except (ValueError, OverflowError):              try:                  dt, ignored_tokens = parser.parse(argument, fuzzy_with_tokens=True)              except parser.ParserError: | 
