diff --git a/Dockerfile b/Dockerfile index c31ecab..e93d2ee 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,6 +13,7 @@ COPY config.py config.py COPY dakiny_bot.py dakiny_bot.py COPY utils.py utils.py +COPY bot_messages bot_messages/ COPY classes classes/ COPY cogs cogs/ COPY database_setup database_setup/ diff --git a/cogs/loops/daily_loop.py b/cogs/loops/daily_loop.py index 49045ae..08ab79a 100644 --- a/cogs/loops/daily_loop.py +++ b/cogs/loops/daily_loop.py @@ -24,18 +24,11 @@ class DailyLoop(commands.Cog, name="Daily Loop"): def __init__(self, bot: commands.Bot) -> None: self.bot = bot - self.current_election = self.get_current_cycle() - - @commands.Cog.listener() - async def on_ready(self): - """ - Starts the loop when bot is ready. - """ - + self.current_election = None self.update_birthdays() - await self.bot.wait_until_ready() - # pylint doesn't recognize that periodic_update_guild_data is subclassed from tasks.loop. - await self.daily_loop.start() # pylint: disable=no-member + + # pylint doesn't recognize that daily_loop is subclassed from tasks.loop. + self.daily_loop.start() # pylint: disable=no-member @tasks.loop(time=time(hour=0, tzinfo=timezone("GMT"))) async def daily_loop(self): @@ -55,6 +48,17 @@ class DailyLoop(commands.Cog, name="Daily Loop"): self.update_birthdays() + @daily_loop.before_loop + async def before_loop(self): + """ + Actions run before the loop starts. Want to wait for bot to be ready and get the current cycle. + """ + + await self.bot.wait_until_ready() + + # Bot needs to know guilds to get the current cycle. + self.current_election = self.get_current_cycle() + def get_current_cycle(self) -> ElectionCycle: """ Creates an object for the current election cycle if one is active. An election is considered active @@ -70,7 +74,7 @@ class DailyLoop(commands.Cog, name="Daily Loop"): for cycle, election in enumerate(config.election_cycles): if ( - today.date() > get_datetime(election.election_start).date() + today.date() >= get_datetime(election.election_start).date() and today.date() < get_datetime(election.term_start).date() ): current_election = ElectionCycle(cycle, config, self.bot.get_guild(config.params.guild_id)) diff --git a/dakiny_bot.py b/dakiny_bot.py index f1c4b48..076cd15 100644 --- a/dakiny_bot.py +++ b/dakiny_bot.py @@ -57,4 +57,6 @@ def main(cfg: DakinyConfig): if __name__ == "__main__": sys.argv.append("hydra.job.chdir=False") - main() + sys.argv.append("hydra/job_logging=none") + sys.argv.append("hydra/hydra_logging=none") + main() # pylint: disable=no-value-for-parameter