diff --git a/dakiny_bot/classes/election.py b/dakiny_bot/classes/election.py index c69aa73..7c360f8 100644 --- a/dakiny_bot/classes/election.py +++ b/dakiny_bot/classes/election.py @@ -5,9 +5,6 @@ from datetime import UTC, datetime, timedelta from pathlib import Path import nextcord -from sqlalchemy import select, true, update -from sqlalchemy.orm import Session - from dakiny_bot.classes.nominate_highcouncil_views import NominateHighCouncilView from dakiny_bot.classes.nominate_views import NominateView from dakiny_bot.classes.voting_highcouncil_views import VoteHighcouncilView @@ -19,6 +16,7 @@ from dakiny_bot.database.sql_data_classes import ( Votes, engine, ) +from dakiny_bot.logger import dakiny_logger from dakiny_bot.utils import ( TEMPLATES_DIR, VoteType, @@ -28,6 +26,8 @@ from dakiny_bot.utils import ( get_datetime, get_election_name, ) +from sqlalchemy import select, true, update +from sqlalchemy.orm import Session REQUIRED_VOTES_TO_BE_ELECTED = 3 @@ -144,20 +144,29 @@ class Election: async def check_date(self) -> None: """Function checks current date to see if something needs to be run.""" today = datetime.now(tz=UTC) + dakiny_logger.debug("Checking date.") # check all dates if action is needed if today.date() == self.election_start.date(): + dakiny_logger.debug("Election start.") await self.election_start_action() elif today.date() == self.voting_start.date(): + dakiny_logger.debug("Voting start.") await self.voting_start_action() elif (self.voting_end - timedelta(3)).date() <= today.date() < self.voting_end.date(): + dakiny_logger.debug("Election reminder.") await self.election_reminder() elif today.date() == self.voting_end.date(): + dakiny_logger.debug("Voting end.") await self.voting_end_action() elif today.date() == self.highcouncil_election_start.date(): + dakiny_logger.debug("Highcouncil election start.") await self.highcouncil_election_start_action() elif today.date() == self.term_start.date(): + dakiny_logger.debug("Term start") await self.term_start_action() + else: + dakiny_logger.warning("Check date didn't do anything. This should never happen.") async def election_start_action(self) -> None: """Performs required actions for when the election cycle starts.""" diff --git a/dakiny_bot/cogs/loops/daily_loop.py b/dakiny_bot/cogs/loops/daily_loop.py index 7980295..90e00a3 100644 --- a/dakiny_bot/cogs/loops/daily_loop.py +++ b/dakiny_bot/cogs/loops/daily_loop.py @@ -4,6 +4,7 @@ import random from datetime import UTC, datetime, time from typing import TYPE_CHECKING +from logger import dakiny_logger from nextcord.ext import commands, tasks from pytz import timezone from sqlalchemy import select @@ -43,8 +44,10 @@ class DailyLoop(commands.Cog, name="Daily Loop"): an active election, runs the check_date() function for the election to perform actions. Finally checks if the election is over to delete the current election object. """ + dakiny_logger.debug("Daily loop.") if self.current_election is None: self.current_election = self.get_election() + dakiny_logger.debug("Current election: %s", self.current_election) if self.current_election is not None: await self.current_election.check_date() @@ -85,6 +88,8 @@ class DailyLoop(commands.Cog, name="Daily Loop"): election = Election(cycle, self.bot.get_guild(settings.params.guild_id)) + dakiny_logger.debug("Election active: %s", election.active) + return election if election.active else None def update_birthdays(self) -> None: diff --git a/dakiny_bot/utils.py b/dakiny_bot/utils.py index a86c26e..7c04fc7 100644 --- a/dakiny_bot/utils.py +++ b/dakiny_bot/utils.py @@ -20,6 +20,7 @@ from dakiny_bot.database.sql_data_classes import ( Votes, engine, ) +from dakiny_bot.logger import dakiny_logger from .DakinySettings import settings @@ -92,12 +93,14 @@ def get_active_election_cycle() -> int: int: cycle index for active election. None for no active cycle """ today = datetime.now(tz=UTC) + dakiny_logger.debug("Today is %s", today) for cycle, election in enumerate(settings.election_cycles): if ( today.date() >= get_datetime(election.election_start).date() and today.date() <= get_datetime(election.term_start).date() ): + dakiny_logger.debug("Cycle is %d", cycle) return cycle # It isn't a current election, get the quarter @@ -114,13 +117,16 @@ def get_quarter_cycle() -> int: int: cycle index for current cycle. """ today = datetime.now(tz=UTC) + dakiny_logger.debug("Today is %s", today) for cycle, election in enumerate(settings.election_cycles): if ( today.date() >= get_datetime(election.term_start).date() and today.date() <= get_datetime(election.term_end).date() ): + dakiny_logger.debug("Cycle is %d", cycle) return cycle + dakiny_logger.debug("Quarter cycle is None.") return None