move edit clan council message into utils.
This commit is contained in:
@@ -6,7 +6,7 @@ import os
|
||||
from datetime import datetime
|
||||
|
||||
import nextcord
|
||||
from sqlalchemy import select, update
|
||||
from sqlalchemy import select, true, update
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from config import DakinyConfig
|
||||
@@ -527,3 +527,59 @@ async def edit_clan_message(
|
||||
)
|
||||
session.execute(stmt)
|
||||
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