This commit is contained in:
@@ -2,13 +2,18 @@
|
|||||||
Defines the daily loop that runs the Dakiny bot functions.
|
Defines the daily loop that runs the Dakiny bot functions.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
import random
|
||||||
from datetime import datetime, time
|
from datetime import datetime, time
|
||||||
|
|
||||||
from nextcord.ext import commands, tasks
|
from nextcord.ext import commands, tasks
|
||||||
from pytz import timezone
|
from pytz import timezone
|
||||||
|
from sqlalchemy import select
|
||||||
|
from sqlalchemy.orm import Session
|
||||||
|
|
||||||
from classes.election_cycle import ElectionCycle
|
from classes.election_cycle import ElectionCycle
|
||||||
from config import DakinyConfig
|
from config import DakinyConfig
|
||||||
|
from dakiny_bot import birthday_list
|
||||||
|
from database_setup.sql_data_classes import UserBirthday, engine
|
||||||
from utils import get_datetime
|
from utils import get_datetime
|
||||||
|
|
||||||
|
|
||||||
@@ -26,6 +31,8 @@ class DailyLoop(commands.Cog, name="Daily Loop"):
|
|||||||
"""
|
"""
|
||||||
Starts the loop when bot is ready.
|
Starts the loop when bot is ready.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
self.update_birthdays()
|
||||||
await self.bot.wait_until_ready()
|
await self.bot.wait_until_ready()
|
||||||
# pylint doesn't recognize that periodic_update_guild_data is subclassed from tasks.loop.
|
# pylint doesn't recognize that periodic_update_guild_data is subclassed from tasks.loop.
|
||||||
await self.daily_loop.start() # pylint: disable=no-member
|
await self.daily_loop.start() # pylint: disable=no-member
|
||||||
@@ -46,6 +53,8 @@ class DailyLoop(commands.Cog, name="Daily Loop"):
|
|||||||
if self.current_election.election_over:
|
if self.current_election.election_over:
|
||||||
self.current_election = None
|
self.current_election = None
|
||||||
|
|
||||||
|
self.update_birthdays()
|
||||||
|
|
||||||
def get_current_cycle(self) -> ElectionCycle:
|
def get_current_cycle(self) -> ElectionCycle:
|
||||||
"""
|
"""
|
||||||
Creates an object for the current election cycle if one is active. An election is considered active
|
Creates an object for the current election cycle if one is active. An election is considered active
|
||||||
@@ -67,3 +76,22 @@ class DailyLoop(commands.Cog, name="Daily Loop"):
|
|||||||
current_election = ElectionCycle(cycle, config, self.bot.get_guild(config.params.guild_id))
|
current_election = ElectionCycle(cycle, config, self.bot.get_guild(config.params.guild_id))
|
||||||
|
|
||||||
return current_election
|
return current_election
|
||||||
|
|
||||||
|
def update_birthdays(self) -> None:
|
||||||
|
"""
|
||||||
|
Goes through database to collect all birthdays that are today. Adds user's id to birthday list.
|
||||||
|
"""
|
||||||
|
birthday_list.clear()
|
||||||
|
|
||||||
|
# kandy's 1% chance
|
||||||
|
if random.randint(0, 99) == 0:
|
||||||
|
birthday_list.append(239547993106284544)
|
||||||
|
|
||||||
|
today = datetime.today()
|
||||||
|
birthday = f"{today.month}/{today.day}"
|
||||||
|
|
||||||
|
stmt = select(UserBirthday.UserId).where(UserBirthday.Birthday == birthday)
|
||||||
|
with Session(engine) as session:
|
||||||
|
to_add = session.scalars(stmt)
|
||||||
|
print(to_add)
|
||||||
|
# TODO add the birthdays to the list
|
||||||
|
|||||||
@@ -14,3 +14,4 @@ Base.prepare(autoload_with=engine)
|
|||||||
ElectionInformation = Base.classes.ElectionInformation
|
ElectionInformation = Base.classes.ElectionInformation
|
||||||
CouncilMembers = Base.classes.CouncilMembers
|
CouncilMembers = Base.classes.CouncilMembers
|
||||||
Votes = Base.classes.Votes
|
Votes = Base.classes.Votes
|
||||||
|
UserBirthday = Base.classes.UserBirthday
|
||||||
|
|||||||
Reference in New Issue
Block a user