Set up bot to do initial test. Made changes in class to make test take less time.

This commit is contained in:
2023-05-15 11:34:14 -04:00
parent d3858a7ba1
commit 6c9de43e73
2 changed files with 43 additions and 15 deletions
+37 -11
View File
@@ -4,6 +4,7 @@ Contains the election cycle class
from datetime import datetime, timedelta from datetime import datetime, timedelta
import nextcord
from nextcord.ext import commands from nextcord.ext import commands
@@ -26,12 +27,12 @@ class ElectionCycle:
self._election_start: datetime = election_start self._election_start: datetime = election_start
self._term_start: datetime = term_start self._term_start: datetime = term_start
self._term_end: datetime = term_end # might not be needed self._term_end: datetime = term_end # might not be needed
self._voting_start: datetime = self._election_start + timedelta(days=7) self._voting_start: datetime = self._election_start + timedelta(days=1)
self._voting_end: datetime = self._voting_start + timedelta(days=7) self._voting_end: datetime = self._voting_start + timedelta(days=1)
self._highcouncil_election: datetime = self._voting_end + timedelta(days=1) self._highcouncil_election: datetime = self._voting_end + timedelta(days=1)
self._bot: commands.Bot = bot self._bot: commands.Bot = bot
def check_date(self) -> None: async def check_date(self) -> None:
""" """
Function checks current date to see if something needs to be run. Function checks current date to see if something needs to be run.
""" """
@@ -40,34 +41,59 @@ class ElectionCycle:
# check all dates if action is needed # check all dates if action is needed
match today.date(): match today.date():
case self._election_start.date(): case self._election_start.date():
self.election_start_action() await self.election_start_action()
case self._voting_start.date(): case self._voting_start.date():
self.voting_end_action() await self.voting_end_action()
case self._voting_end.date(): case self._voting_end.date():
self.voting_end_action() await self.voting_end_action()
case self._highcouncil_election.date(): case self._highcouncil_election.date():
self.highcouncil_election_action() await self.highcouncil_election_action()
case self._term_start.date():
await self.term_start_action()
case self._term_end.date():
await self.term_end_action()
def election_start_action(self) -> None: async def election_start_action(self) -> None:
""" """
Performs required actions for when the election cycle starts. Performs required actions for when the election cycle starts.
""" """
print("election cycle has started") print("election cycle has started")
await self.message_me("election cycle has started")
def voting_start_action(self) -> None: async def voting_start_action(self) -> None:
""" """
Performs required actions for when voting for candidates starts. Performs required actions for when voting for candidates starts.
""" """
print("Voting has started") print("Voting has started")
await self.message_me("Voting has started")
def voting_end_action(self) -> None: async def voting_end_action(self) -> None:
""" """
Performs required actions for when voting time has ended. Performs required actions for when voting time has ended.
""" """
print("voting has ended") print("voting has ended")
await self.message_me("voting has ended")
def highcouncil_election_action(self) -> None: async def highcouncil_election_action(self) -> None:
""" """
Performs required actions for when the highcouncil is elected. Performs required actions for when the highcouncil is elected.
""" """
print("Highcouncil election has started.") print("Highcouncil election has started.")
await self.message_me("Highcouncil election has started.")
async def term_start_action(self) -> None:
msg: str = "the term has started"
print(msg)
self.message_me(msg)
async def term_end_action(self):
msg: str = "the term has ended"
print(msg)
self.message_me(msg)
async def message_me(self, msg: str):
"""
message a string to me
"""
imcompiling: nextcord.User = await self._bot.fetch_user(206602713511886849)
await imcompiling.send(msg)
+6 -4
View File
@@ -2,11 +2,13 @@
_summary_ _summary_
""" """
import nextcord from datetime import datetime, time
from nextcord.ext import commands, tasks from nextcord.ext import commands, tasks
from datetime import time
from pytz import timezone from pytz import timezone
from classes.election_cycle import ElectionCycle
class DailyLoop(commands.Cog, name="Daily Loop"): class DailyLoop(commands.Cog, name="Daily Loop"):
""" """
@@ -15,6 +17,7 @@ class DailyLoop(commands.Cog, name="Daily Loop"):
def __init__(self, bot: commands.Bot) -> None: def __init__(self, bot: commands.Bot) -> None:
self.bot = bot self.bot = bot
self.election = ElectionCycle(datetime(2023, 5, 16), datetime(2023, 5, 20), datetime(2023, 5, 21), self.bot)
@commands.Cog.listener() @commands.Cog.listener()
async def on_ready(self): async def on_ready(self):
@@ -28,5 +31,4 @@ class DailyLoop(commands.Cog, name="Daily Loop"):
@tasks.loop(time=time(hour=0, tzinfo=timezone("GMT"))) @tasks.loop(time=time(hour=0, tzinfo=timezone("GMT")))
async def do_thing(self): async def do_thing(self):
""" """ """ """
imcompiling: nextcord.User = await self.bot.fetch_user(206602713511886849) await self.election.check_date()
await imcompiling.send("its reset in runescape")