diff options
| author | 2020-03-08 18:00:50 +0100 | |
|---|---|---|
| committer | 2020-03-08 18:00:50 +0100 | |
| commit | eb8ebdb6f9aa678829eae29555316f8324029094 (patch) | |
| tree | 596f853a4244168ed3009a01bccfa270afe4a789 /bot | |
| parent | Deseasonify: adjust inheriting seasons in accordance with new system (diff) | |
Deseasonify: lock daily tasks to their seasons' respective months
Applies to daily egg facts and pride facts of the day. Currently, we do
not have any sophisticated mechanism in place. However, we can simply
configure `active_months` for the cog, and then have the task perform
a membership check in each cycle.
Diffstat (limited to 'bot')
| -rw-r--r-- | bot/seasons/easter/egg_facts.py | 13 | ||||
| -rw-r--r-- | bot/seasons/pride/pride_facts.py | 10 | 
2 files changed, 15 insertions, 8 deletions
diff --git a/bot/seasons/easter/egg_facts.py b/bot/seasons/easter/egg_facts.py index 260a505a..cfa420f6 100644 --- a/bot/seasons/easter/egg_facts.py +++ b/bot/seasons/easter/egg_facts.py @@ -1,15 +1,14 @@  import asyncio  import logging  import random +from datetime import datetime  from json import load  from pathlib import Path  import discord  from discord.ext import commands -from bot.constants import Channels -from bot.constants import Colours - +from bot.constants import Channels, Colours, Month  log = logging.getLogger(__name__) @@ -24,6 +23,8 @@ class EasterFacts(commands.Cog):      def __init__(self, bot: commands.Bot):          self.bot = bot          self.facts = self.load_json() + +        self.active_months = {Month.april}          self.daily_fact_task = self.bot.loop.create_task(self.send_egg_fact_daily())      @staticmethod @@ -39,8 +40,10 @@ class EasterFacts(commands.Cog):          channel = self.bot.get_channel(Channels.seasonalbot_commands)          while True: -            embed = self.make_embed() -            await channel.send(embed=embed) +            current_month = Month(datetime.utcnow().month) +            if current_month in self.active_months: +                await channel.send(embed=self.make_embed()) +              await asyncio.sleep(24 * 60 * 60)      @commands.command(name='eggfact', aliases=['fact']) diff --git a/bot/seasons/pride/pride_facts.py b/bot/seasons/pride/pride_facts.py index fe5e3cf9..2df9c8cd 100644 --- a/bot/seasons/pride/pride_facts.py +++ b/bot/seasons/pride/pride_facts.py @@ -10,8 +10,7 @@ import dateutil.parser  import discord  from discord.ext import commands -from bot.constants import Channels -from bot.constants import Colours +from bot.constants import Channels, Colours, Month  log = logging.getLogger(__name__) @@ -24,6 +23,8 @@ class PrideFacts(commands.Cog):      def __init__(self, bot: commands.Bot):          self.bot = bot          self.facts = self.load_facts() + +        self.active_months = {Month.june}          self.daily_fact_task = self.bot.loop.create_task(self.send_pride_fact_daily())      @staticmethod @@ -38,7 +39,10 @@ class PrideFacts(commands.Cog):          channel = self.bot.get_channel(Channels.seasonalbot_commands)          while True: -            await self.send_select_fact(channel, datetime.utcnow()) +            current_month = Month(datetime.utcnow().month) +            if current_month in self.active_months: +                await self.send_select_fact(channel, datetime.utcnow()) +              await asyncio.sleep(24 * 60 * 60)      async def send_random_fact(self, ctx: commands.Context) -> None:  |