move edit clan council message into utils.
This commit is contained in:
@@ -23,9 +23,8 @@ from database_setup.sql_data_classes import (
|
|||||||
from utils import (
|
from utils import (
|
||||||
build_highcouncil_votes_str,
|
build_highcouncil_votes_str,
|
||||||
build_votes_str,
|
build_votes_str,
|
||||||
edit_clan_message,
|
edit_clan_council_message,
|
||||||
get_cl_election_name,
|
get_cl_election_name,
|
||||||
get_cycle_name,
|
|
||||||
get_datetime,
|
get_datetime,
|
||||||
get_dm_election_name,
|
get_dm_election_name,
|
||||||
get_election_cycle_name,
|
get_election_cycle_name,
|
||||||
@@ -439,7 +438,7 @@ class ElectionCycle:
|
|||||||
)
|
)
|
||||||
|
|
||||||
await election_thread.edit(archived=True, locked=True)
|
await election_thread.edit(archived=True, locked=True)
|
||||||
await self.edit_clan_council_message()
|
await edit_clan_council_message(self.guild, self.config)
|
||||||
|
|
||||||
def get_election_info(self) -> ElectionInformation:
|
def get_election_info(self) -> ElectionInformation:
|
||||||
"""
|
"""
|
||||||
@@ -469,51 +468,3 @@ class ElectionCycle:
|
|||||||
message += f"to <#{self.get_election_info().ThreadId}> to cast your vote!"
|
message += f"to <#{self.get_election_info().ThreadId}> to cast your vote!"
|
||||||
|
|
||||||
await general.send(content=message)
|
await general.send(content=message)
|
||||||
|
|
||||||
async def edit_clan_council_message(self):
|
|
||||||
clan_info_channel: nextcord.TextChannel = await self.guild.fetch_channel(
|
|
||||||
self.config.params.clan_info_channel_id
|
|
||||||
)
|
|
||||||
|
|
||||||
election = get_election_cycle_name(self.config)
|
|
||||||
with Session(engine) as session:
|
|
||||||
stmt = (
|
|
||||||
select(CouncilMembers.MemberId)
|
|
||||||
.where(CouncilMembers.ElectionCycle == election)
|
|
||||||
.where(CouncilMembers.DiscordManager == true())
|
|
||||||
)
|
|
||||||
discord_manager = session.scalar(stmt)
|
|
||||||
stmt = (
|
|
||||||
select(CouncilMembers.MemberId)
|
|
||||||
.where(CouncilMembers.ElectionCycle == election)
|
|
||||||
.where(CouncilMembers.ClanLeader == true())
|
|
||||||
)
|
|
||||||
clan_leader = session.scalar(stmt)
|
|
||||||
stmt = (
|
|
||||||
select(CouncilMembers.MemberId)
|
|
||||||
.where(CouncilMembers.ElectionCycle == election)
|
|
||||||
.where(CouncilMembers.Elected == true())
|
|
||||||
)
|
|
||||||
|
|
||||||
council_members_strs = [
|
|
||||||
f"<@{id}>"
|
|
||||||
for id in session.scalars(stmt)
|
|
||||||
if id not in (discord_manager, clan_leader)
|
|
||||||
]
|
|
||||||
|
|
||||||
quarter = get_cycle_name(self.config)
|
|
||||||
|
|
||||||
with open(
|
|
||||||
"bot_messages/council_members.txt", mode="r", encoding="utf8"
|
|
||||||
) as file:
|
|
||||||
message = file.read()
|
|
||||||
message = message.format(
|
|
||||||
quarter=quarter,
|
|
||||||
council="\n".join(council_members_strs),
|
|
||||||
clan_leader=clan_leader,
|
|
||||||
discord_manager=discord_manager,
|
|
||||||
)
|
|
||||||
|
|
||||||
await edit_clan_message(
|
|
||||||
session, clan_info_channel, "council_members.txt", message
|
|
||||||
)
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import os
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
import nextcord
|
import nextcord
|
||||||
from sqlalchemy import select, update
|
from sqlalchemy import select, true, update
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
|
|
||||||
from config import DakinyConfig
|
from config import DakinyConfig
|
||||||
@@ -527,3 +527,59 @@ async def edit_clan_message(
|
|||||||
)
|
)
|
||||||
session.execute(stmt)
|
session.execute(stmt)
|
||||||
session.commit()
|
session.commit()
|
||||||
|
|
||||||
|
|
||||||
|
async def edit_clan_council_message(guild: nextcord.Guild, config: DakinyConfig):
|
||||||
|
"""
|
||||||
|
Gets the winners of the elections and updates the perminant message that states the current council.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
guild (nextcord.Guild): Guild object that to use to get channel.
|
||||||
|
config (DakinyConfig): Configs
|
||||||
|
"""
|
||||||
|
clan_info_channel: nextcord.TextChannel = await guild.fetch_channel(
|
||||||
|
config.params.clan_info_channel_id
|
||||||
|
)
|
||||||
|
|
||||||
|
election = get_election_cycle_name(config)
|
||||||
|
with Session(engine) as session:
|
||||||
|
stmt = (
|
||||||
|
select(CouncilMembers.MemberId)
|
||||||
|
.where(CouncilMembers.ElectionCycle == election)
|
||||||
|
.where(CouncilMembers.DiscordManager == true())
|
||||||
|
)
|
||||||
|
discord_manager = session.scalar(stmt)
|
||||||
|
stmt = (
|
||||||
|
select(CouncilMembers.MemberId)
|
||||||
|
.where(CouncilMembers.ElectionCycle == election)
|
||||||
|
.where(CouncilMembers.ClanLeader == true())
|
||||||
|
)
|
||||||
|
clan_leader = session.scalar(stmt)
|
||||||
|
stmt = (
|
||||||
|
select(CouncilMembers.MemberId)
|
||||||
|
.where(CouncilMembers.ElectionCycle == election)
|
||||||
|
.where(CouncilMembers.Elected == true())
|
||||||
|
)
|
||||||
|
|
||||||
|
council_members_strs = [
|
||||||
|
f"<@{id}>"
|
||||||
|
for id in session.scalars(stmt)
|
||||||
|
if id not in (discord_manager, clan_leader)
|
||||||
|
]
|
||||||
|
|
||||||
|
quarter = get_cycle_name(config)
|
||||||
|
|
||||||
|
with open(
|
||||||
|
"bot_messages/council_members.txt", mode="r", encoding="utf8"
|
||||||
|
) as file:
|
||||||
|
message = file.read()
|
||||||
|
message = message.format(
|
||||||
|
quarter=quarter,
|
||||||
|
council="\n".join(council_members_strs),
|
||||||
|
clan_leader=clan_leader,
|
||||||
|
discord_manager=discord_manager,
|
||||||
|
)
|
||||||
|
|
||||||
|
await edit_clan_message(
|
||||||
|
session, clan_info_channel, "council_members.txt", message
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user