139 lines
3.8 KiB
Python
139 lines
3.8 KiB
Python
"""
|
|
Commands for testing.
|
|
"""
|
|
|
|
import nextcord
|
|
from nextcord.ext import application_checks, commands
|
|
|
|
from classes.election_cycle import ElectionCycle
|
|
from config import DakinyConfig
|
|
from utils import get_current_cycle
|
|
|
|
|
|
class TestCog(commands.Cog, name="Test commands."):
|
|
"""
|
|
Class holds commands for testing.
|
|
"""
|
|
|
|
def __init__(self, bot) -> None:
|
|
"""
|
|
Default constructor for HelpCog class. Does nothing.
|
|
"""
|
|
self.bot = bot
|
|
|
|
def is_me():
|
|
def predicate(interaction: nextcord.Interaction):
|
|
return interaction.user.id == 206602713511886849
|
|
|
|
return application_checks.check(predicate)
|
|
|
|
@nextcord.slash_command()
|
|
@is_me()
|
|
async def test(self, interaction: nextcord.Interaction):
|
|
"""
|
|
Parent slash command for help. Never called.
|
|
"""
|
|
|
|
@test.subcommand()
|
|
@is_me()
|
|
async def msg_builder(self, interaction: nextcord.Interaction):
|
|
"""
|
|
Tests the message builder.
|
|
|
|
Args:
|
|
interaction (nextcord.Interaction): Interaction that invoked the command.
|
|
"""
|
|
|
|
cycle = ElectionCycle(0, self.bot)
|
|
|
|
message = cycle.build_election_announcement()
|
|
|
|
# doesn't tell discord that the message was responded to. Is a test command so I don't really care atm.
|
|
for m in message:
|
|
await interaction.channel.send(content=m)
|
|
|
|
@test.subcommand()
|
|
@is_me()
|
|
async def election_start(self, interaction: nextcord.Interaction):
|
|
"""
|
|
idc
|
|
|
|
Args:
|
|
interaction (nextcord.Interaction): _description_
|
|
"""
|
|
|
|
config: DakinyConfig = self.bot.config
|
|
cycle = ElectionCycle(
|
|
get_current_cycle(config),
|
|
config,
|
|
self.bot.get_guild(config.params.guild_id),
|
|
)
|
|
await cycle.election_start_action()
|
|
|
|
@test.subcommand()
|
|
@is_me()
|
|
async def voting_start(self, interaction: nextcord.Interaction):
|
|
"""
|
|
tests the voting start action
|
|
|
|
Args:
|
|
interaction (nextcord.Interaction): _description_
|
|
"""
|
|
config: DakinyConfig = self.bot.config
|
|
cycle = ElectionCycle(
|
|
get_current_cycle(config),
|
|
config,
|
|
self.bot.get_guild(config.params.guild_id),
|
|
)
|
|
await cycle.voting_start_action()
|
|
|
|
@test.subcommand()
|
|
@is_me()
|
|
async def voting_end(self, interaction: nextcord.Interaction):
|
|
"""
|
|
tests the voting start action
|
|
|
|
Args:
|
|
interaction (nextcord.Interaction): _description_
|
|
"""
|
|
config: DakinyConfig = self.bot.config
|
|
cycle = ElectionCycle(
|
|
get_current_cycle(config),
|
|
config,
|
|
self.bot.get_guild(config.params.guild_id),
|
|
)
|
|
await cycle.voting_end_action()
|
|
|
|
@test.subcommand()
|
|
@is_me()
|
|
async def election_reminder(self, interaction: nextcord.Interaction):
|
|
config: DakinyConfig = self.bot.config
|
|
cycle = ElectionCycle(
|
|
get_current_cycle(config),
|
|
config,
|
|
self.bot.get_guild(config.params.guild_id),
|
|
)
|
|
await cycle.election_reminder()
|
|
|
|
@test.subcommand()
|
|
@is_me()
|
|
async def daily(self, interaction: nextcord.Interaction):
|
|
config: DakinyConfig = self.bot.config
|
|
cycle = ElectionCycle(
|
|
get_current_cycle(config),
|
|
config,
|
|
self.bot.get_guild(config.params.guild_id),
|
|
)
|
|
await cycle.check_date()
|
|
|
|
@test.subcommand()
|
|
@is_me()
|
|
async def term_start(self, interaction: nextcord.Interaction):
|
|
config: DakinyConfig = self.bot.config
|
|
cycle = ElectionCycle(
|
|
get_current_cycle(config),
|
|
config,
|
|
self.bot.get_guild(config.params.guild_id),
|
|
)
|
|
await cycle.term_start_action()
|